View Javadoc

1   //----------------------------------------------------------------------
2   // 
3   // PerfectJPattern: "Design patterns are good but components are better!" 
4   // Product.java Copyright (c) 2009 Giovanni Azua Garcia
5   // bravegag@hotmail.com
6   //  
7   // This program is free software; you can redistribute it and/or
8   // modify it under the terms of the GNU General Public License
9   // as published by the Free Software Foundation; either version 3
10  // of the License, or (at your option) any later version.
11  //
12  // This program is distributed in the hope that it will be useful,
13  // but WITHOUT ANY WARRANTY; without even the implied warranty of
14  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  // GNU General Public License for more details.
16  //
17  // You should have received a copy of the GNU General Public License
18  // along with this program; if not, see <http://www.gnu.org/licenses/>.
19  //
20  //----------------------------------------------------------------------
21  package org.perfectjpattern.example.datamodel;
22  
23  import java.util.*;
24  
25  /**
26   * Product Data model object
27   * 
28   * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a>
29   * @version $ $Date: Dec 5, 2008 2:59:45 AM $
30   */
31  public 
32  class Product
33  {
34      //------------------------------------------------------------------------
35      // public
36      //------------------------------------------------------------------------
37      public 
38      Product()
39      {
40          // do nothing
41      }
42  
43      //------------------------------------------------------------------------
44      public 
45      Product(String aName, double aListPrice)
46      {
47          theName = aName;
48          theListPrice = aListPrice;
49          theOrders = new HashSet<Order>();
50      }
51  
52      //------------------------------------------------------------------------
53      /**
54       * Returns the id
55       *
56       * @return the id
57       */
58      public long 
59      getId()
60      {
61          return theId;
62      }
63      
64      //------------------------------------------------------------------------
65      /**
66       * Sets the id of the person
67       * 
68       * @param anId the id to set
69       */
70      public void 
71      setId(long anId)
72      {
73          theId = anId;
74      }
75      
76      //------------------------------------------------------------------------
77      /**
78       * Returns the name
79       *
80       * @return the name
81       */
82      public String 
83      getName()
84      {
85          return theName;
86      }
87      
88      //------------------------------------------------------------------------
89      /**
90       * Sets the name of the person
91       *
92       * @param anName the name to set
93       */
94      public void 
95      setName(String anName)
96      {
97          theName = anName;
98      }
99      
100     //------------------------------------------------------------------------
101     /**
102      * Returns the listPrice
103      * 
104      * @return the listPrice
105      */
106     public double 
107     getListPrice()
108     {
109         return theListPrice;
110     }
111 
112     //------------------------------------------------------------------------
113     /**
114      * Sets the listPrice
115      * 
116      * @param aListPrice the listPrice to set
117      */
118     public void 
119     setListPrice(double aListPrice)
120     {
121         theListPrice = aListPrice;
122     }
123 
124     //------------------------------------------------------------------------
125     /**
126      * Returns the orders
127      * 
128      * @return the orders
129      */
130     public Set<Order> 
131     getOrders()
132     {
133         return theOrders;
134     }
135 
136     //------------------------------------------------------------------------
137     /**
138      * Sets the orders
139      * 
140      * @param anOrders the orders to set
141      */
142     public void 
143     setOrders(Set<Order> anOrders)
144     {
145         theOrders = anOrders;
146     }
147 
148     //------------------------------------------------------------------------
149     /** 
150      * {@inheritDoc}
151      */
152     @Override
153     public final int 
154     hashCode()
155     {
156         final int myPrime = 31;
157         
158         int myResult = 1;
159         myResult = myPrime * myResult + ((theName == null) 
160             ? 0 : theName.hashCode());
161         
162         return myResult;
163     }
164 
165     //------------------------------------------------------------------------
166     /** 
167      * {@inheritDoc}
168      */
169     @Override
170     public final boolean 
171     equals(Object anAnother)
172     {
173         if (this == anAnother)
174         {
175             return true;
176         }
177         
178         if (anAnother == null)
179         {
180             return false;
181         }
182         
183         if (!(anAnother instanceof Product))
184         {
185             return false;
186         }
187         
188         final Product myAnother = (Product) anAnother;
189         return (getName() == null && myAnother.getName() == null) ||
190                (getName() != null && myAnother.getName() != null 
191              && getName().equals(myAnother.getName()));
192     }
193 
194     //------------------------------------------------------------------------
195     // members
196     //------------------------------------------------------------------------
197     private long theId;
198     private String theName;
199     private double theListPrice;
200     private Set<Order> theOrders;
201 }