1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.nuiton.eugene.models.object.xml;
24
25 import com.google.common.collect.ImmutableSet;
26 import org.nuiton.eugene.models.object.ObjectModelModifier;
27 import org.nuiton.eugene.models.object.ObjectModelParameter;
28 import org.nuiton.eugene.models.object.ObjectModelUMLModifier;
29
30 import java.util.Set;
31
32
33
34
35
36
37
38
39 public class ObjectModelParameterImpl extends ObjectModelElementImpl implements
40 ObjectModelParameter {
41
42 protected String type;
43
44 protected int minMultiplicity = 1;
45
46 protected int maxMultiplicity = 1;
47
48
49
50
51
52
53
54
55 protected String defaultValue;
56
57 private static Set<ObjectModelModifier> authorizedModifiers;
58
59 public static final String PROPERTY_ORDERED = "ordered";
60
61 public ObjectModelParameterImpl() {
62
63 addModifier(ObjectModelUMLModifier.UNIQUE);
64 }
65
66 @Override
67 public void postInit() {
68 super.postInit();
69 }
70
71 @Override
72 protected Set<ObjectModelModifier> getAuthorizedModifiers() {
73 if (authorizedModifiers == null) {
74
75 authorizedModifiers = ImmutableSet.of(
76 (ObjectModelModifier) ObjectModelUMLModifier.UNIQUE,
77 ObjectModelUMLModifier.ORDERED,
78 ObjectModelUMLModifier.UNIQUE);
79 }
80 return authorizedModifiers;
81 }
82
83 public void setType(String type) {
84 this.type = type;
85 }
86
87 public void setMinMultiplicity(int minMultiplicity) {
88 this.minMultiplicity = minMultiplicity;
89 }
90
91 public void setMaxMultiplicity(int maxMultiplicity) {
92 this.maxMultiplicity = maxMultiplicity;
93 }
94
95 public void setOrdering(String ordering) {
96 setOrdered(PROPERTY_ORDERED.equals(ordering));
97
98 }
99
100 public void setUnique(boolean unique) {
101 addOrRemoveModifier(ObjectModelUMLModifier.UNIQUE, unique);
102 }
103
104 public void setDefaultValue(String defaultValue) {
105 this.defaultValue = defaultValue;
106 }
107
108 @Override
109 public String getType() {
110 return type;
111 }
112
113 @Override
114 public String getDefaultValue() {
115 return defaultValue;
116 }
117
118 @Override
119 public int getMinMultiplicity() {
120 return minMultiplicity;
121 }
122
123 @Override
124 public int getMaxMultiplicity() {
125 return maxMultiplicity;
126 }
127
128 @Override
129 public boolean isOrdered() {
130 return modifiers.contains(ObjectModelUMLModifier.ORDERED);
131 }
132
133 public void setOrdered(boolean ordered) {
134 addOrRemoveModifier(ObjectModelUMLModifier.ORDERED, ordered);
135 }
136
137 @Override
138 public boolean isUnique() {
139 return modifiers.contains(ObjectModelUMLModifier.UNIQUE);
140 }
141
142 @Override
143 public String toString() {
144 return getType() + " " + getName() + "<<" + getStereotypes()
145 + ">> tagvalue: " + getTagValues();
146 }
147 }