Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 3" -> 232

Технологии профаммирования на Java 2 Книга 3 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 3 — М.: Бином-Пресс, 2003. — 672 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220033.pdf
Предыдущая << 1 .. 226 227 228 229 230 231 < 232 > 233 234 235 236 237 238 .. 271 >> Следующая

-
Глава 11
жен переопределять методы hashCode и equals класса Object. Переопределенные реализации методов hashCode (строки 38-41) и equals (строки 49-57) дают возможность контейнеру EJB и клиентам EJB-компонента OrderProduct определять, являются ли два экземпляра EJB-компонента OrderProduct эквивалентными, путем сравнения их экземпляров класса первичного ключа.
1 Il OrderProductPK.java
2 Il OrderProductPK - класс первичного клоча для EJB-
3 // сущности OrderProduct.
4 package com.deitel.advjhtpl.bookstore.ejb; 5
6// Набор базових пакетов Java 7 import j ava.io. *; 8
9 public class OrderProductPK implements Serializable ( 10
11 // поля в составе первичного ключа
12 public String ISBN ,-
13 public Integer orderID; 14
15 Il конструктор без аргументов
16 public OrderProductPK() (} 17
18 /I построение объекта OrderProductPK с ISBN-кодом
и идентификатором orderID
19 public OrderProductPK( String isbn, integer id )
20 {
21 ISBN = isbn;
22 orderID = id;
23 ) 24
25 Il получение ISBN-хода
26 public String getISBNO
27 {
28 return ISBN;
29 } 30
31 Il получение идентификатора orderID
32 public Integer getOrderIDO
33 {
34 return orderID;
35 ) 36
37 Il вычисление хэш-кода для данного объекта
38 public int hashCode()
39 (
40 return getISBNO.hashCode() Л getOrderID().intValueО;
41 } 42
43 // нестандартная реализация метода equals класса Object
44 public boolean equals ( Object object )
45 {
46 Il проверка, что объект является экземпляром класса
OrderProductPK
47 if ( object instanceof OrderProductPK ) {
48 OrderProductPK otherKey =
Практический пример корпоративного приложения. Бизнес-логика: часть 1
569
49 ( OrderProductPK ) object;
50
51 // сравнение ISBN-кодов и идентификаторов orderID
52 return ( getISBN<).equals ( otherKey.getISBN () )
53 SS getOrderID().equals( otherKey.getOrderID() ) );
54 } 55
56 return false;
57 }
58 }_
Рис. 11.24. Класс первичного ключа OrderProducPK для EJB-компонента OrderProduct
11.6.5. Класс OrderProductModel
Класс модели OrderProductModel (рис. 11.25) представляет запись в таблице OrderProduct. В строке 18 объявляется ссылка на объект ProductModel для товара (компонент Product), ассоциированного с записью таблицы OrderProduct. Атрибут quantity (строка 19) представляет количество товара в заказе. Заказ идентифицируется по его номеру orderID (строка 20). Метод getXML (строки 59—76) генерирует код элемента XML, представляющего объект OrderProductModel.
1 // OrderProductModel.java
2// Класс OrderProductModel представляет товар и его
3 // количество в заказе или в магазинной тележке.
4 package com.deitel.advj htpl.bookstore.model; 5
6// Набор базовых пакетов Java
7 import java.io.*;
8 import java.util.*;
9 import java.text.*; 10
11 Il Пакеты сторонних поставщиков
12 import org.w3c.dom. *; 13
14 public class OrderProductModel implements Serializable,
15 XMLGenerator { 16
17 /I свойства объекта OrderProductModel
18 private ProductModel productModel;
19 private int quantity;
20 private Integer orderID; 21
22 Il задание объекта ProductModel
23 public void setProductModel( ProductModel model )
24 {
25 productModel = model;
If '
28 Il получение объекта ProductModel
29 public ProductModel getProductModel() (
return productModel;
>
570
Глава 11
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
67 68 69 70 71 72 73 74 75 76 77 )
II задание количества
public void setQuantity( int productQuantity ) quantity = productQuantity;
Il получение количества public int getQuantity()
return quantity;
Il задание идентификатора orderID public void setOrderlD( Integer id )
orderID = id;
/ получение идентификатора orderID public Integer getOrderIDO
return orderID;
II получение XML-представления объекта OrderProduct
public Element getXML( Document document )
{
// создание элемента OrderProduct Element OrderProduct =
document.createElement< "OrderProduct" );
11 добавление элемента из объекта ProductModel OrderProduct.appendChild (
getProductModel().getXML( document ) );
II создание элемента quantity
Element temp = document.createElement( "quantity" ) temp.appendChiId ( document.createTextNode(
String.valueOf ( getQuantity() ) ) ); OrderProduct.appendChild( temp );
return OrderProduct;
Рис. 11.25. Класс OrderProductModel для сериализации данных EJB-компонента OrderProduct
В таблицах на рис. 11.26, 11.27 и 11.28 представлены параметры развертывания для EJB-сущности OrderProduct. В дополнение к этим установкам следует задать для типа транзакции Transaction Туре значение Required для всех бизнес-методов. Заметим, что поскольку EJB-сущность OrderProduct использует нестандартный (создаваемый разработчиком) класс первичного ключа, значение для имени поля первичного ключа Primary Key Field Name (рис. 11.27) должно быть оставлено пустым.
Практический пример корпоративного приложения. Бизнес-логика: часть 1
571
Основные параметры развертывания для EJB-компонента OrderProduct
Тип Bean Туре Entity
Предыдущая << 1 .. 226 227 228 229 230 231 < 232 > 233 234 235 236 237 238 .. 271 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100