OSDN Git Service

mavenによるビルドに変更
[charactermanaj/CharacterManaJ.git] / src / main / java / charactermanaj / model / ColorGroup.java
1 package charactermanaj.model;\r
2 \r
3 import java.io.Serializable;\r
4 \r
5 /**\r
6  * カラーグループ.<br>\r
7  * カラーグループはimmutableであり、構築された値は変更されることはない.<br>\r
8  * @author seraphy\r
9  */\r
10 public final class ColorGroup implements Serializable {\r
11 \r
12         private static final long serialVersionUID = -2127943872189828172L;\r
13 \r
14         private final String id;\r
15         \r
16         private final boolean enabled;\r
17         \r
18         private final String localizedName;\r
19 \r
20         public static final ColorGroup NA = new ColorGroup("n/a", "", false);\r
21         \r
22         public ColorGroup(final String id, final String localizedName) {\r
23                 this(id, localizedName, true);\r
24         }\r
25         \r
26         private ColorGroup(final String id, final String localizedName, final boolean enabled) {\r
27                 if (id == null || id.trim().length() == 0) {\r
28                         throw new IllegalArgumentException();\r
29                 }\r
30                 this.id = id.trim();\r
31                 this.localizedName = (localizedName == null || localizedName.trim().length() == 0) ? id : localizedName;\r
32                 this.enabled = enabled;\r
33         }\r
34         \r
35         public boolean isEnabled() {\r
36                 return enabled;\r
37         }\r
38         \r
39         public String getId() {\r
40                 return id;\r
41         }\r
42         \r
43         public String getLocalizedName() {\r
44                 return localizedName;\r
45         }\r
46         \r
47         @Override\r
48         public int hashCode() {\r
49                 return id.hashCode();\r
50         }\r
51         \r
52         @Override\r
53         public boolean equals(Object obj) {\r
54                 if (obj == this) {\r
55                         return true;\r
56                 }\r
57                 if (obj != null && obj instanceof ColorGroup) {\r
58                         ColorGroup o = (ColorGroup) obj;\r
59                         return id.equals(o.getId());\r
60                 }\r
61                 return false;\r
62         }\r
63         \r
64         public static boolean equals(ColorGroup v1, ColorGroup v2) {\r
65                 if (v1 == v2) {\r
66                         return true;\r
67                 }\r
68                 if (v1 == null || v2 == null) {\r
69                         return false;\r
70                 }\r
71                 return v1.equals(v2);\r
72         }\r
73         \r
74         @Override\r
75         public String toString() {\r
76                 return getLocalizedName();\r
77         }\r
78 \r
79 }\r