| packageImport [message #877465] |
Sat, 26 May 2012 16:04  |
|
Hello,
how can i programmatically access contents of imported package? for the
following exapmle, traverse elements of Ecore.metamodel.uml#_0
> <packageImport xmi:id="_packageImport.0">
> <importedPackage xmi:type="uml:Model" href="Ecore.metamodel.uml#_0"/>
> </packageImport>
I use following two methods to aggregate all elements (from all models
in a file) into one list. How should it be changed to aggregate also
elements from external file?
> private static EList<Element> agregateElements(Resource resource) {
> EList<Element> list = new BasicEList<Element>();
> for (Object obj : EcoreUtil.getObjectsByType(resource.getContents(),
> UMLPackage.Literals.ELEMENT)) {
> Element elem = (Element) obj;
> list.addAll(agregateElementsRecursive(elem));
> }
>
> return list;
> }
>
> private static EList<Element> agregateElementsRecursive(Element parentElem) {
>
> EList<Element> list = new BasicEList<Element>();
>
> list.add(parentElem);
>
> for (Element elem : parentElem.getOwnedElements()) {
> if (elem instanceof PackageImpl
> || elem instanceof ModelImpl) {
> list.addAll(agregateElementsRecursive(elem));
> } else {
> list.add(elem);
> }
> }
>
> return list;
> }
|
|
|
|
| Re: packageImport [message #877481 is a reply to message #877470] |
Sat, 26 May 2012 16:53  |
|
hi, i posted it in uml2 newsgroup first, but nobody answered and i
decided to move it here. thanks for the answer!
On 26.05.2012 22:13, Christian W. Damus wrote:
> Hi, Emil,
>
> Questions about UML should be directed to the eclipse.mdt.uml2 newsgroup.
>
> The PackageImport interface provides a getImportedPackage() method. This
> yields the imported package. Its contents are then accessed as any other
> package's.
>
> HTH,
>
> Christian
>
>
> Emil Huseynli<emilhuseynli@xxxxxxxx> wrote:
>> Hello,
>>
>> how can i programmatically access contents of imported package? for the
>> following exapmle, traverse elements of Ecore.metamodel.uml#_0
>>
>>> <packageImport xmi:id="_packageImport.0">
>>> <importedPackage xmi:type="uml:Model" href="Ecore.metamodel.uml#_0"/>
>>> </packageImport>
>>
>> I use following two methods to aggregate all elements (from all models in
>> a file) into one list. How should it be changed to aggregate also
>> elements from external file?
>>
>>> private static EList<Element> agregateElements(Resource resource) {
>>> EList<Element> list = new BasicEList<Element>();
>>> for (Object obj : EcoreUtil.getObjectsByType(resource.getContents(),
>>> UMLPackage.Literals.ELEMENT)) {
>>> Element elem = (Element) obj;
>>> list.addAll(agregateElementsRecursive(elem));
>>> }
>>>
>>> return list;
>>> }
>>>
>>> private static EList<Element> agregateElementsRecursive(Element parentElem) {
>>>
>>> EList<Element> list = new BasicEList<Element>();
>>>
>>> list.add(parentElem);
>>>
>>> for (Element elem : parentElem.getOwnedElements()) {
>>> if (elem instanceof PackageImpl
>>> || elem instanceof ModelImpl) {
>>> list.addAll(agregateElementsRecursive(elem));
>>> } else {
>>> list.add(elem);
>>> }
>>> }
>>>
>>> return list;
>>> }
|
|
|
Powered by
FUDForum. Page generated in 0.02441 seconds