2009-09-10 7 views
1

Я хочу использовать EMF для генерации кода, поэтому я написал несколько методов для загрузки моего UML2-файла, который я создал сам. Это прекрасно работает со следующим кодом:Eclipse Modeling Framework (EMF): Как получить DomainModel от экспорта Magicdraw UML2

protected void registerResources() { 
    resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE); 

    resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE); 

    Map<URI, URI> uriMap = resourceSet.getURIConverter().getURIMap(); 
    String resourcesJarPath = Thread.currentThread().getContextClassLoader().getResource("org.eclipse.uml2.uml.resources_2.2.0.v200805131030").toExternalForm(); 
    URI baseUri = URI.createURI(resourcesJarPath); 
    uriMap.put(URI.createURI(UMLResource.LIBRARIES_PATHMAP), baseUri.appendSegment("libraries").appendSegment("")); 
    uriMap.put(URI.createURI(UMLResource.METAMODELS_PATHMAP), baseUri.appendSegment("metamodels").appendSegment("")); 
    uriMap.put(URI.createURI(UMLResource.PROFILES_PATHMAP), baseUri.appendSegment("profiles").appendSegment("")); 
} 

public Package loadPackage(URI uri) { 
    Resource resource = resourceSet.getResource(uri, true); 
    return (Package) EcoreUtil.getObjectByType(resource.getContents(), UMLPackage.Literals.PACKAGE); 
} 

Но теперь, я хотел экспортировать MagicDraw-Domainmodel к EMF UML2 XMI, и я получаю 5 файлов. Один файл project.uml и 4 профиля (UML_Standard_Profile.MagicDraw_Profile.DSL_Customization.profile.uml, UML_Standard_Profile.MagicDraw_Profile.profile.uml, UML_Standard_Profile.UML_Standard_Profile.profile.uml, UML_Standard_Profile.Validation_Profile.profile.uml). Итак, если я хочу загрузить project.uml с loadPackageclass, мой пакет равен NULL.

Есть ли у кого-нибудь пример приложения, как загрузить экспортированный с помощью MagicDraw UML DomainModel?

Dominik

ответ

0

Источник: http://dev.eclipse.org/newslists/news.eclipse.modeling.mdt.uml2/msg01517.html

Для EMF UML:

импорта org.eclipse.uml2.uml.util.UMLUtil; Профиль myProfile = UMLUtil.getProfile (MyProfilePackage.eINSTANCE, ...)

В цепочке электронной почты, которую я нашел на этом, они также показали, как подключить его к модели, что также должно быть полезно для вас.

Вопрос, по-видимому, не получил его, но он имеет смысл для меня и похож на методы, которые вы используете для IBM RSA.

IBM RSA:

Файл F = новый файл (...); Профиль p = UMLModeler.openProfile (f.getAbsolutePath());

2

Не могли бы вы показать нам первые несколько строк модели UML от MagicDraw (как XMI)? Здесь, для некоторых моделей мне нужно дополнительное

resourceSet.getPackageRegistry().put("http://www.eclipse.org/uml2/2.0.0/UML", UMLPackage.eINSTANCE); 

загрузить эти модели (которые по общему признанию, исходят от старой версии MD, в Eclipse, 3.4.2).

+1

спасибо большое, теперь он работает, и модель не является нулевой – ddejmek

 Смежные вопросы

  • Нет связанных вопросов^_^