]> git.mxchange.org Git - jproduct-core.git/blob - src/org/mxchange/jproduct/model/product/Product.java
Continued:
[jproduct-core.git] / src / org / mxchange / jproduct / model / product / Product.java
1 /*
2  * Copyright (C) 2016, 2017 Roland Häder
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 package org.mxchange.jproduct.model.product;
18
19 import java.io.Serializable;
20 import java.util.Date;
21 import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
22 import org.mxchange.jproduct.model.category.Category;
23 import org.mxchange.jproduct.model.product.agegroup.AgeGroup;
24
25 /**
26  * An interface for in database storable products
27  * <p>
28  * @author Roland Häder<roland@mxchange.org>
29  */
30 public interface Product extends Serializable {
31
32         /**
33          * Getter for created timestamp
34          * <p>
35          * @return Created timestamp
36          */
37         Date getProductCreated ();
38
39         /**
40          * Setter for created timestamp
41          * <p>
42          * @param productCreated Created timestamp
43          */
44         void setProductCreated (final Date productCreated);
45
46         /**
47          * Getter for product availability
48          * <p>
49          * @return Product availability
50          */
51         Boolean getProductAvailability ();
52
53         /**
54          * Setter for product availability
55          * <p>
56          * @param productAvailability Product availability
57          */
58         void setProductAvailability (final Boolean productAvailability);
59
60         /**
61          * Getter for product category id
62          * <p>
63          * @return Product category id
64          */
65         Category getProductCategory ();
66
67         /**
68          * Setter for product category
69          * <p>
70          * @param productCategory Product category
71          */
72         void setProductCategory (final Category productCategory);
73
74         /**
75          * Getter for id number, suitable for form fields.
76          * <p>
77          * @return Id number of product
78          */
79         Long getProductId ();
80
81         /**
82          * Id number of product
83          * <p>
84          * @param productId the id number to set
85          */
86         void setProductId (final Long productId);
87
88         /**
89          * Getter for manufacturing/producing company
90          * <p>
91          * @return Manufacturing/producing company
92          */
93         BasicData getProductManufacturer ();
94
95         /**
96          * Setter for manufacturing/producing company
97          * <p>
98          * @param productManufacturer Manufacturing/producing company
99          */
100         void setProductManufacturer (final BasicData productManufacturer);
101
102         /**
103          * Getter for product's net price
104          * <p>
105          * @return Product's net price
106          */
107         Float getProductNetPrice ();
108
109         /**
110          * Setter for product's net price
111          * <p>
112          * @param productNetPrice Product's net price
113          */
114         void setProductNetPrice (final Float productNetPrice);
115
116         /**
117          * Getter for product's tax rate
118          * <p>
119          * @return Product's tax rate
120          */
121         Float getProductTaxRate ();
122
123         /**
124          * Setter for product's tax rate
125          * <p>
126          * @param productTaxRate Product's tax rate
127          */
128         void setProductTaxRate (final Float productTaxRate);
129
130         /**
131          * Getter for product's gross price
132          * <p>
133          * @return Product's gross price
134          */
135         Float getProductGrossPrice ();
136
137         /**
138          * Setter for product's gross price
139          * <p>
140          * @param productGrossPrice Product's gross price
141          */
142         void setProductGrossPrice (final Float productGrossPrice);
143
144         /**
145          * Getter for currency code like EUR or USD
146          * <p>
147          * @return Currency code like EUR or USD
148          */
149         String getProductCurrencyCode ();
150
151         /**
152          * Setter for currency code like EUR or USD
153          * <p>
154          * @param productCurrencyCode Currency code like EUR or USD
155          */
156         void setProductCurrencyCode (final String productCurrencyCode);
157
158         /**
159          * Getter for i18n key of product
160          * <p>
161          * @return I18n key of product
162          */
163         String getProductI18nKey ();
164
165         /**
166          * Setter for i18n key of product
167          * <p>
168          * @param productI18nKey I18n key
169          */
170         void setProductI18nKey (final String productI18nKey);
171
172         /**
173          * Getter for product's unit amount
174          * <p>
175          * @return Product's unit amount
176          */
177         Float getProductUnitAmount ();
178
179         /**
180          * Setter for product's unit amount
181          * <p>
182          * @param productUnitAmount Product's unit amount
183          */
184         void setProductUnitAmount (final Float productUnitAmount);
185
186         /**
187          * Getter for product's i18n key
188          * <p>
189          * @return Product's i18n key
190          */
191         String getProductUnitI18nKey ();
192
193         /**
194          * Setter for product's i18n key
195          * <p>
196          * @param productI18nKey Product's i18n key
197          */
198         void setProductUnitI18nKey (final String productI18nKey);
199
200         /**
201          * Getter for product's number
202          * <p>
203          * @return Product's number
204          */
205         Long getProductNumber ();
206
207         /**
208          * Setter for product's number
209          * <p>
210          * @param productNumber Product's number
211          */
212         void setProductNumber (final Long productNumber);
213
214         /**
215          * Getter for product's size
216          * <p>
217          * @return Product's size
218          */
219         String getProductSize ();
220
221         /**
222          * Setter for product's size
223          * <p>
224          * @param productSize Product's size
225          */
226         void setProductSize (final String productSize);
227
228         /**
229          * Getter for product's age group
230          * <p>
231          * @return Product's age group
232          */
233         AgeGroup getProductAgeGroup ();
234
235         /**
236          * Setter for product's age group
237          * <p>
238          * @param productAgeGroup Product's age group
239          */
240         void setProductAgeGroup (final AgeGroup productAgeGroup);
241
242         @Override
243         boolean equals (final Object object);
244
245         @Override
246         int hashCode ();
247
248 }