Changeset 1528 for trunk/modelicaml
- Timestamp:
- 05/31/12 20:24:47 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/modelicaml/org.openmodelica.modelicaml.common/src/org/openmodelica/modelicaml/common/services/ElementsCollector.java
r1060 r1528 41 41 import org.eclipse.emf.common.util.EList; 42 42 import org.eclipse.emf.ecore.EObject; 43 import org.eclipse.uml2.uml.Class;44 43 import org.eclipse.uml2.uml.Element; 45 44 import org.eclipse.uml2.uml.Namespace; 45 import org.eclipse.uml2.uml.Package; 46 46 import org.eclipse.uml2.uml.PackageableElement; 47 47 … … 74 74 75 75 Namespace element = (Namespace)umlRootElement; 76 EList<PackageableElement> importedElements = getImportedMembers(element); 77 if (importedElements != null && importedElements.size() > 0) { 78 for (PackageableElement packageableElement : importedElements) { 79 80 // check if the imported member is an element 81 if (packageableElement instanceof Element) { 82 collectElements(packageableElement, true); 83 } 84 85 // go to the contents of the imported member 86 collectFromImportedMember(packageableElement); 87 } 88 } 76 77 // collect imported packages 78 for (Package importedPackage : element.getImportedPackages()) { 79 collectElement(importedPackage, true); 80 81 // go to the contents of the imported package 82 collectFromImportedMember(importedPackage); 83 } 84 85 // EList<PackageableElement> importedElements = getImportedMembers(element); 86 // if (importedElements != null && importedElements.size() > 0) { 87 // for (PackageableElement packageableElement : importedElements) { 88 // 89 // // check if the imported member is an element 90 // if (packageableElement instanceof Element) { 91 // collectElements(packageableElement, true); 92 // } 93 // 94 // // go to the contents of the imported member 95 // collectFromImportedMember(packageableElement); 96 // } 97 // } 98 89 99 } 90 100 else { … … 102 112 if (object instanceof Namespace) { 103 113 104 EList<PackageableElement> importedElements = getImportedMembers((Namespace)object); 114 Namespace element = (Namespace)object; 115 116 // collect imported packages 117 for (Package importedPackage : element.getImportedPackages()) { 118 collectElement(importedPackage, true); 119 120 // go to the contents of the imported package 121 collectFromImportedMember(importedPackage); 122 } 123 124 EList<PackageableElement> importedElements = getImportedMembers(element); 105 125 if (importedElements != null && importedElements.size() > 0) { 106 126 for (PackageableElement packageableElement2 : importedElements) { … … 108 128 // check if the imported member is an element 109 129 if (packageableElement2 instanceof Element) { 110 collectElement s(packageableElement2, true);130 collectElement(packageableElement2, true); 111 131 } 112 132 … … 119 139 // collect elements. 120 140 if (object instanceof Element) { 121 collectElements((Element)object, false); 122 } 123 } 124 } 125 126 127 128 129 // public void collectElementsFromModel(EObject umlRootElement, String stereotypeQName){ 130 // 131 // //set the stereotype 132 // this.stereotypeQName = stereotypeQName; 133 // 134 // // clear lists in order to enable the call of the this method multiple times using the same object. 135 // importedMembers.clear(); 136 // importedElements.clear(); 137 // elements.clear(); 138 // 139 // if (umlRootElement != null) { 140 // // collect elements that are imported by the selected root element 141 // if (umlRootElement instanceof Namespace) { 142 // 143 // Namespace element = (Namespace)umlRootElement; 144 // EList<PackageableElement> importedElements = getImportedMembers(element); 145 // if (importedElements != null && importedElements.size() > 0) { 146 // for (PackageableElement packageableElement : importedElements) { 147 // 148 // // check if the imported member is an element 149 // if (packageableElement instanceof Element) { 150 // collectElements(packageableElement, true); 151 // } 152 // 153 // // go to the contents of the imported member 154 // collectFromImportedMember(packageableElement); 155 // } 156 // } 157 // } 158 // 159 // // get all direct contents of the selected root element 160 // Iterator<EObject> i = umlRootElement.eAllContents(); 161 // 162 // while (i.hasNext()) { 163 // EObject object = i.next() ; 164 // 165 // // collect all imported elements 166 // if (object instanceof Namespace) { 167 // 168 // EList<PackageableElement> importedElements = getImportedMembers((Namespace)object); 169 // if (importedElements != null && importedElements.size() > 0) { 170 // for (PackageableElement packageableElement2 : importedElements) { 171 // 172 // // check if the imported member is an element 173 // if (packageableElement2 instanceof Element) { 174 // collectElements(packageableElement2, true); 175 // } 176 // 177 // // go to the contents of the imported member 178 // collectFromImportedMember(packageableElement2); 179 // } 180 // } 181 // } 182 // 183 // // collect elements. 184 // if (object instanceof Element) { 185 // collectElements((Element)object, false); 186 // } 187 // } 188 // } 189 // else { 190 //// System.err.println("Cannot access the root ModelicaML model for searching for value binding containers."); 191 // } 192 // } 141 collectElement((Element)object, false); 142 } 143 } 144 } 193 145 194 146 … … 197 149 // get imported members from itself 198 150 if (importedMember instanceof Namespace) { 151 199 152 Namespace element = (Namespace) importedMember; 153 154 // collect imported packages 155 for (Package importedPackage : element.getImportedPackages()) { 156 collectElement(importedPackage, true); 157 } 158 200 159 EList<PackageableElement> importedElements = getImportedMembers(element); 201 160 … … 205 164 importedMembers.addAll(importedElements); 206 165 for (PackageableElement packageableElement : importedElements) { 166 207 167 // collect elements 208 168 if (packageableElement instanceof Element) { 209 collectElement s((Element)packageableElement, true);169 collectElement((Element)packageableElement, true); 210 170 } 211 171 // not yet considered -> recursively call … … 219 179 } 220 180 221 // iterate over all contained elements , collect requirements, and recursively collect requirements from all imported members181 // iterate over all contained elements 222 182 Iterator<EObject> i = importedMember.eAllContents(); 223 183 while (i.hasNext()) { … … 226 186 // collect elements 227 187 if (object instanceof Element) { 228 collectElements((Element)object, true); 229 } 188 collectElement((Element)object, true); 189 } 190 230 191 // not yet considered -> recursively call 231 192 if (!importedMembers.contains(object)) { … … 241 202 * This method can be overridden for specific collections 242 203 */ 243 protected void collectElement s(Element element, boolean isImported){204 protected void collectElement(Element element, boolean isImported){ 244 205 // collect elements 245 206 // avoid duplicates that can occur due to the multiple imports of the same elements 246 207 247 if (element instanceof Class208 if (element instanceof Element 248 209 && ((Element)element).getAppliedStereotype(this.stereotypeQName) != null 249 210 && !elements.contains(element)) { … … 258 219 } 259 220 221 260 222 private EList<PackageableElement> getImportedMembers(Namespace element){ 261 223 if (element != null) {
Note: See TracChangeset
for help on using the changeset viewer.