2012-06-13 3 views
2

uml 다이어그램과 함께 xmi 파일을로드했습니다. 결과적으로 나는 org.eclipse.uml2.uml.Package를 얻는다.Eclipse : 프로그래밍 방식으로 UML을 에코로 변환하는 방법

이제 프로그래밍 방식으로 Ecore (ePackage)로 변환하려고합니다.

저는 이미 org.eclipse.uml2.uml.util.UMLUtil에서 UML2EcoreConverter를 살펴 보았습니다. 하지만 변환 방법은 나에게 분명하지 않습니다.

답변

3

대신 UML2EcoreConverter 직접가는, 그것은 패키지의지도를한다

org.eclipse.uml2.uml.util.UMLUtil.convertToEcore (패키지,지도)를 살펴 옵션을 사용하여 변환 된 EPackage를 반환합니다. 옵션 맵은 UMLUtil.UML2EcoreConverter.OPTION __ *의 옵션을 키로 제공 할 수 있습니다. 가능한 값은 UMLUtil.OPTION_ DISCARD/OPTION _IGNORE/OPTION_ PROCESS/OPTION _REPORT입니다. 모든 옵션의 기본값은 OPTION__IGNORE입니다.

대부분의 옵션은 Ecore에 제대로 매핑되지 않는 UML2 클래스 다이어그램의 개념을 처리하기위한 것으로, 처리 방법을 제어 할 수 있습니다. 확장 기능 매핑에 대한

(집합/노동 조합, 재정 ...), 부분 집합 *, OPTION__UNION_PROPERTIES, OPTION_ * 중복 *, OPTION_ 재정 OPTION_ 를 참조하십시오. 이들 모두를 OPTION_PROCESS로 설정하는 것이 좋습니다.

사용하지 않도록 설정할 수있는 옵션은 OPTION__SUPER_CLASS_ORDER입니다. 이것은 일반화와 인터페이스 실현을 알파벳 순서로 재정렬 할 것이므로 특정 수퍼 구현을 상속 받기를 원할 때 구현 문제가 발생할 수 있습니다. 또 하나는 OPTION__CAMEL_CASE_NAMES입니다. 엄격한 낙타 사례 체계를 강요하기 위해 클래스 및 기능 이름을 처리합니다. 이것은 UML 아티팩트가 유효한 java 이름을 가지고 있지 않은 경우에만 의미가 있습니다. 그냥 OPTION_IGNORE로 설정하거나 OPTION_REPORT로 변경 될 위치를 확인하십시오.

그 반대의 경우 convertFromEcore (...)도 있습니다.

UML2EcoreConverter의 내부 동작을 더 잘 이해하려면 다음과 같이하십시오. 기본적으로 UML 모델을 순회하며 각 아티팩트를 Ecore와 동등하게 변환하고 정리하는 간단한 재귀 방문자입니다. 그것은 다른 메타 클래스를 처리하기 위해 UMLSwitch를 확장합니다. 예를 들어 UML 속성이 EStructuralFeature로 변환되는 방법을 보려면 caseProperty (...)

을 살펴보십시오.
-1

Ecore에서 UML로만 변환 할 수 있습니다.