-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStructureManagement.java
More file actions
362 lines (335 loc) · 13.3 KB
/
StructureManagement.java
File metadata and controls
362 lines (335 loc) · 13.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
import com.sun.prism.PixelFormat;
import javafx.scene.chart.PieChart;
import javax.lang.model.type.PrimitiveType;
import java.util.*;
/**
* class manage structures
*/
public class StructureManagement {
// List of classes
private Map <String , Class> classes;
// List of interfaces
private Map <String , Interface> interfaces;
/**
* Constructor of StructureManagement
*/
public StructureManagement() {
classes = new HashMap <>();
interfaces = new HashMap <>();
}
/**
* Add a new Class to the Map
* @param className name of the Class
* @return adding ability
*/
public boolean addClass(String className) {
Class _class = new Class();
if (!_class.setName(className)) return false;
if (classes.containsKey(className) || interfaces.containsKey(className) ) {
System.out.println("The name '"+className+ "' has already been declared");
return false;
}
classes.put(_class.getName(),_class);
System.out.println("Added class "+className);
return true;
}
/**
* Delete a Class
* @param className name of the Class
* @return deleting ability
*/
public boolean deleteClass(String className){
if (classes.containsKey(className)){
System.out.println("Removed Class: "+classes.remove(className).getName());
return true;
}
System.out.println("class "+className+" does not exist");
return false;
}
/**
* Add a new Interface to the Map
* @param interfaceName name of the Interface
* @return adding ability
*/
public boolean addInterface(String interfaceName) {
Interface _interface = new Interface();
if (!_interface.setName(interfaceName)) return false;
if (classes.containsKey(interfaceName) || interfaces.containsKey(interfaceName)) {
System.out.println("The name '"+interfaceName+ "' has already been declared");
return false;
}
interfaces.put(_interface.getName(),_interface);
System.out.println("Added interface "+interfaceName);
return true;
}
/**
* Delete an Interface
* @param interfaceName name of the Interface
* @return deleting ability
*/
public boolean deleteInterface(String interfaceName){
if (interfaces.containsKey(interfaceName)){
System.out.println("Removed Interface: "+interfaces.remove(interfaceName).getName());
return true;
}
System.out.println("interface "+interfaceName+" does not exist");
return false;
}
/**
* add a new Property to a Class
* @param propertyName name of the Property
* @param propertyType type of the Property
* @param className name of the Class
* @return adding ability
*/
public boolean addPropertyToClass(String propertyName, String propertyType, String className){
if (!classes.containsKey(className)) {
System.out.println("Class '" + className + "' has not already been declared");
return false;
}
Class _class = classes.get(className);
return _class.addProperty(propertyName, propertyType);
}
/**
* add a new Property to an Interface
* @param propertyName name of the Property
* @param propertyType type of the Property
* @param interfaceName name of the Interface
* @return adding ability
*/
public boolean addPropertyToInterface(String propertyName, String propertyType, String interfaceName){
if (!interfaces.containsKey(interfaceName)) {
System.out.println("Interface '" + interfaceName + "' has not already been declared");
return false;
}
Interface _interface = interfaces.get(interfaceName);
return _interface.addProperty(propertyName, propertyType);
}
/**
* delete a Property of a Class
* @param propertyName name of the Property
* @param className name of the Class
* @return deleting ability
*/
public boolean deletePropertyOfClass(String propertyName, String className){
if (!classes.containsKey(className)) {
System.out.println("Class '" + className + "' has not already been declared");
return false;
}
Class _class = classes.get(className);
return _class.deleteProperty(propertyName);
}
/**
* delete a Property of an Interface
* @param propertyName name of the Property
* @param interfaceName name of the Interface
* @return deleting ability
*/
public boolean deletePropertyOfInterface(String propertyName, String interfaceName){
if (!interfaces.containsKey(interfaceName)) {
System.out.println("Interface '" + interfaceName + "' has not already been declared");
return false;
}
Interface _interface = interfaces.get(interfaceName);
return _interface.deleteProperty(propertyName);
}
/**
* add a new Method to a Class
* @param methodName name of the Method
* @param methodType type of the Method
* @param className name of the Class
* @return adding ability
*/
public boolean addMethodToClass(String methodName, String methodType, String className){
if (!classes.containsKey(className)) {
System.out.println("Class '" + className + "' has not already been declared");
return false;
}
Class _class = classes.get(className);
return _class.addMethod(methodName, methodType);
}
/**
* add a new Method to an Interface
* @param methodName name of the Method
* @param methodType type of the Method
* @param interfaceName name of the Interface
* @return adding ability
*/
public boolean addMethodToInterface(String methodName, String methodType, String interfaceName){
if (!interfaces.containsKey(interfaceName)) {
System.out.println("interface '" + interfaceName + "' has not already been declared");
return false;
}
Interface _interface = interfaces.get(interfaceName);
return _interface.addMethod(methodName, methodType);
}
/**
* delete a Method of a Class
* @param methodName name of the Method
* @param className name of the Class
* @return deleting ability
*/
public boolean deleteMethodOfClass(String methodName, String className){
if (!classes.containsKey(className)) {
System.out.println("Class '" + className + "' has not already been declared");
return false;
}
Class _class = classes.get(className);
return _class.deleteMethod(methodName);
}
/**
* delete a Method of an Interface
* @param methodName name of the Method
* @param interfaceName name of the Interface
* @return deleting ability
*/
public boolean deleteMethodOfInterface(String methodName, String interfaceName){
if (!interfaces.containsKey(interfaceName)) {
System.out.println("Interface '" + interfaceName + "' has not already been declared");
return false;
}
Interface _interface = interfaces.get(interfaceName);
return _interface.deleteMethod(methodName);
}
/**
* set a class to be parents of another class
* @param childName name of child Class
* @param parentsName name of parents Class
* @return setting ability
*/
public boolean setClassParentsFor(String childName, String parentsName){
if (!classes.containsKey(parentsName)) {
System.out.println("Class '" + parentsName + "' has not already been declared");
return false;
}
if (!classes.containsKey(childName)) {
System.out.println("Class '" + childName + "' has not already been declared");
return false;
}
Class child = classes.get(childName);
Class parents = classes.get(parentsName);
child.setParents(parents);
return true;
}
/**
* add an Argument to a Method of a Class
* @param className name of the Class
* @param methodName name of the Method
* @param argumentName name of the Argument
* @param argumentType type of the Argument
* @return adding ability
*/
public boolean addArgumentToMethodOfClass(String className, String methodName, String argumentName, String argumentType){
if (!classes.containsKey(className)) {
System.out.println("Class '" + className + "' has not already been declared");
return false;
}
Class _class = classes.get(className);
return _class.addArgumentToMethod(methodName, argumentName, argumentType);
}
/**
* add an Argument to a Method of an Interface
* @param interfaceName name of the Interface
* @param methodName name of the Method
* @param argumentName name of the Argument
* @param argumentType type of the Argument
* @return adding ability
*/
public boolean addArgumentToMethodOfInterface(String interfaceName, String methodName, String argumentName, String argumentType){
if (!interfaces.containsKey(interfaceName)) {
System.out.println("Interface '" + interfaceName + "' has not already been declared");
return false;
}
Interface _interface = interfaces.get(interfaceName);
return _interface.addArgumentToMethod(methodName, argumentName, argumentType);
}
/**
* delete an Argument of a Method of a Class
* @param className name of the Class
* @param methodName name of the Method
* @param argumentName name of the Argument
* @return deleting ability
*/
public boolean deleteArgumentOfMethodOfClass(String className, String methodName, String argumentName){
if (!classes.containsKey(className)) {
System.out.println("Class '" + className + "' has not already been declared");
return false;
}
Class _class = classes.get(className);
return _class.deleteArgumentOfMethod(methodName,argumentName);
}
/**
* delete an Argument of a Method of an Interface
* @param interfaceName name of the Interface
* @param methodName name of the Method
* @param argumentName name of the Argument
* @return deleting ability
*/
public boolean deleteArgumentOfMethodOfInterface(String interfaceName, String methodName, String argumentName){
if (!interfaces.containsKey(interfaceName)) {
System.out.println("Interface '" + interfaceName + "' has not already been declared");
return false;
}
Interface _interface = interfaces.get(interfaceName);
return _interface.deleteArgumentOfMethod(methodName,argumentName);
}
/**
* set a Class implement an Interface
* @param className name of the Class
* @param interfaceName name of the Interface
* @return setting ability
*/
public boolean addInterfaceToClass(String className, String interfaceName) {
if (!interfaces.containsKey(interfaceName)) {
System.out.println("Interface '" + interfaceName + "' has not already been declared");
return false;
}
if (!classes.containsKey(className)) {
System.out.println("Class '" + className + "' has not already been declared");
return false;
}
Class _class = classes.get(className);
Interface _interface = interfaces.get(interfaceName);
_class.addInterface(_interface);
return true;
}
/**
* set a Interface implement another Interface
* @param interfaceName name of the child Interface
* @param interfaceParentsName name of the parents Interface
* @return setting ability
*/
public boolean addInterfaceToInterface(String interfaceName, String interfaceParentsName) {
if (!interfaces.containsKey(interfaceParentsName)) {
System.out.println("Interface '" + interfaceParentsName + "' has not already been declared");
return false;
}
if (!interfaces.containsKey(interfaceName)) {
System.out.println("Interface '" + interfaceName + "' has not already been declared");
return false;
}
Interface _interface = interfaces.get(interfaceName);
Interface _parentsInterface = interfaces.get(interfaceParentsName);
_interface.addInterface(_parentsInterface);
return true;
}
/**
* Show everything
*/
public void showAll(){
// Show all classes
Set set = classes.entrySet();
Iterator i = set.iterator();
while (i.hasNext()) {
Map.Entry me = (Map.Entry) i.next();
System.out.println(classes.get(me.getKey()));
}
// Show all interfaces
set = interfaces.entrySet();
i = set.iterator();
while (i.hasNext()) {
Map.Entry me = (Map.Entry) i.next();
System.out.println(interfaces.get(me.getKey()));
}
}
}