Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » packageImport
packageImport [message #877465] Sat, 26 May 2012 16:04 Go to next message
Eclipse User
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 #877470 is a reply to message #877465] Sat, 26 May 2012 16:13 Go to previous messageGo to next message
Christian W. Damus is currently offline Christian W. Damus
Messages: 551
Registered: July 2009
Senior Member
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;
>> }
Re: packageImport [message #877481 is a reply to message #877470] Sat, 26 May 2012 16:53 Go to previous message
Eclipse User
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;
>>> }
Previous Topic:OCL live validation in generated tree editor
Next Topic:Element id
Goto Forum:
  


Current Time: Sat May 25 02:26:58 EDT 2013

Powered by FUDForum. Page generated in 0.02355 seconds