1
2
3
4
5
6
7 package org.asyrinx.joey.gen.model.java;
8
9 import java.util.ArrayList;
10 import java.util.HashSet;
11 import java.util.Iterator;
12 import java.util.List;
13 import java.util.Set;
14
15 import org.asyrinx.joey.gen.model.Element;
16
17 /***
18 * @author akima
19 */
20 public class AppDomain extends Element {
21
22 /***
23 *
24 */
25 public AppDomain() {
26 super();
27 }
28
29 /***
30 *
31 */
32 public AppDomain(String name) {
33 super(name);
34 }
35
36
37
38
39
40
41 public void add(Element element) {
42 if (element instanceof Entity)
43 classes.add((Entity) element);
44 else if (element instanceof JavaEnumeration)
45 enumerations.add((JavaEnumeration) element);
46 else
47 super.add(element);
48 }
49
50 private final EntitySet classes = new EntitySet(this);
51
52 private final JavaEnumerationSet enumerations = new JavaEnumerationSet(this);
53
54 /***
55 * @return Returns the classes.
56 */
57 public EntitySet getClasses() {
58 return classes;
59 }
60
61 /***
62 * @return Returns the enumerations.
63 */
64 public JavaEnumerationSet getEnumerations() {
65 return enumerations;
66 }
67
68 /***
69 * @param property
70 * @return
71 */
72 public List getReferencesContainedAsForeign(Property property) {
73 final List result = new ArrayList();
74 for (Iterator i = getClasses().iterator(); i.hasNext();) {
75 final Entity javaClass = (Entity) i.next();
76 for (Iterator j = javaClass.getReferences().iterator(); j.hasNext();) {
77 final Reference reference = (Reference) j.next();
78 if (reference.containsAsForeign(property))
79 result.add(reference);
80 }
81 }
82 return result;
83 }
84
85 /***
86 * @param class1
87 * @return
88 */
89 public List getReferencesContainedAsForeign(Entity javaClass) {
90 final List result = new ArrayList();
91 for (Iterator i = this.getClasses().iterator(); i.hasNext();) {
92 final Entity class1 = (Entity) i.next();
93 class1.findReferencesContainedAsForeign(javaClass, result);
94 }
95 return result;
96 }
97
98 /***
99 * @param parent
100 * @return
101 */
102 public List getReferencesContainedAsLocal(Entity javaClass) {
103 final List result = new ArrayList();
104 for (Iterator i = this.getClasses().iterator(); i.hasNext();) {
105 final Entity class1 = (Entity) i.next();
106 class1.findReferencesContainedAsLocal(javaClass, result);
107 }
108 return result;
109 }
110
111 public Set findReferences(Entity local, Entity foreign) {
112 final Set result = new HashSet();
113 for (Iterator i = getReferencesContainedAsLocal(local).iterator(); i.hasNext();) {
114 final Reference reference = (Reference) i.next();
115 if (reference.getReferenceClass().isAssignable(foreign))
116 result.add(reference);
117 }
118 return result;
119 }
120
121 }