]> git.mxchange.org Git - jproduct-core.git/blob - src/org/mxchange/jproduct/model/category/Category.java
37f12937ca849e403e51b5c634233ce0b0a04b2b
[jproduct-core.git] / src / org / mxchange / jproduct / model / category / Category.java
1 /*
2  * Copyright (C) 2016 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.category;
18
19 import java.io.Serializable;
20
21 /**
22  * An interface for categories
23  * <p>
24  * @author Roland Häder<roland@mxchange.org>
25  */
26 public interface Category extends Serializable {
27
28         /**
29          * Copies all properties from other category to this
30          * <p>
31          * @param category Source category instance
32          */
33         void copyAll (final Category category);
34
35         /**
36          * Id number of category
37          * <p>
38          * @return the id
39          */
40         Long getCategoryId ();
41
42         /**
43          * Id number of category
44          * <p>
45          * @param id the id to set
46          */
47         void setCategoryId (final Long id);
48
49         /**
50          * Getter for if category is shown in any statistics
51          * <p>
52          * @return Whether this category is shown in any statistics
53          */
54         Boolean getCategoryShownInStatistics ();
55
56         /**
57          * Setter for if category is shown in any statistics
58          * <p>
59          * @param categoryShownInStatistics Whether this category is shown in any
60          *                                  statistics
61          */
62         void setCategoryShownInStatistics (final Boolean categoryShownInStatistics);
63
64         /**
65          * Parent category
66          * <p>
67          * @return the parent category
68          */
69         Category getParentCategory ();
70
71         /**
72          * Parent category
73          * <p>
74          * @param parentCategory the parent category to set
75          */
76         void setParentCategory (final Category parentCategory);
77
78         /**
79          * Title of category
80          * <p>
81          * @return the title
82          */
83         String getCategoryTitle ();
84
85         /**
86          * Title of category
87          * <p>
88          * @param title the title to set
89          */
90         void setCategoryTitle (final String title);
91
92         @Override
93         boolean equals (final Object object);
94
95         @Override
96         int hashCode ();
97
98 }