UML 모델러 확장성의 기반은 모델링 플랫폼이라고
합니다. 모델링 플랫폼은 UML 2.1 모델 관리를 사용하는 서비스 세트로
구성되며 Eclipse MDT UML2 컴포넌트가 제공하는 UML 2.1 메타 모델을
기반으로 합니다.
메타 모델은 UML 2.1 스펙의 EMF(Eclipse Modeling Framework) 기반
구현이므로 사용자 모델을 나타내는 오브젝트는 UML2 오브젝트입니다.
UML 모델러 API는 단일 정적 유틸리티 클래스와 UMLModeler
클래스에서 액세스할 수 있는 여러 기타 클래스 및 인터페이스로
구성됩니다. 기타 클래스 및 인터페이스 구현은 제품의 여러
플러그인에서 사용됩니다. 이 플러그인은 com.ibm.xtools.modeler.ui라는
패키지의 일부인 UMLModeler 클래스를 공개하는 플러그인에서 다시
내보냅니다. UML 모델러
확장성을 사용하려면 API 클라이언트가 하나의 플러그인 종속성만
com.ibm.xtools.modeler.ui 패키지에 추가해야 합니다.
UML 모델러 API
UML 모델러 API(Application
Programming Interface)는 UML 모델러 API의 시작점을 공개하는
UML 모델러 기본 패키지를 나타냅니다. com.ibm.xtools.modeler.ui
패키지에는 모델 및 프로파일의 라이프사이클 조작을 공개하는
UMLModeler 클래스를 포함하며 모델링 플랫폼에 대한 액세스를
제공합니다.
예를 들어, 대부분의 경우 UMLModeler.openModel
메소드는 대부분의 경우 UML2 오브젝트 Package(org.eclipse.uml2.uml, interface
Package)를 리턴합니다. 모든 UML2 오브젝트와 유사하게 패키지는
EModelElement(org.eclipse.emf.ecore, interface EModelElement) EMF
오브젝트를 간접적으로 확장합니다.
다음 모델링 플랫폼 서비스도 EMF 기반 모델에
사용 가능합니다.
- com.ibm.xtools.emf.index.search 패키지의 llndexSearchManager
인터페이스를 통해 색인화된 EMF 모델에서 기본 조회를 수행하는
서비스
- com.ibm.xtools.emf.core.resource 패키지의 IRMPResource
인터페이스를 통해 모델 버전 업그레이드 및 서명 쓰기 프로세스에
참여할 수 있도록 하는 서비스
- com.ibm.xtools.modeler.ui 패키지의 IQueryHelper 인터페이스를 통해
EMF 모델에서 조회를 수행하는 서비스
- com.ibm.xtools.modeler.ui 패키지의 IOclQueryHelper 인터페이스를
통해 EMF 모델에서 OCL(Object Constraints Language) 조회를 수행하는
서비스
다이어그램 작성의 경우 UML 모델러 API는
Eclipse GMF(Graphical Modeling Framework) 프로젝트의 런타임 환경을 사용합니다.
예를 들어, createDiagram(com.ibm.xtools.uml.ui.diagram, interface
IUMLDiagramHelper)메소드는 GMF 다이어그램(org.eclipse.gmf.runtime.notation,
interface Diagram)을 리턴합니다. 이 오브젝트에는 getChildren() 메소드를 통해
View( org.eclipse.gmf.runtime.notation) 오브젝트를 포함합니다. 각 보기는
시맨틱 요소와 연관될 수 있습니다. UML 모델 다이어그램의 경우
이 시맨틱 요소는 UML2 요소이며 View.getElement() 메소드에서 액세스 가능합니다.
모델링 플랫폼은 표기법 기반 다이어그램을 관리하는 데 사용하는
인터페이스를 공개합니다.
- com.ibm.xtools.uml.ui 패키지의 IUMLUIHelper 인터페이스를 통해
UML2 요소를 사용하는 사용자 인터페이스 헬퍼
- com.ibm.xtools.uml.ui.diagram 패키지의 IUMLDiagramHelper
인터페이스를 통해 UML 2.0 표기법 기반 다이어그램을 사용하기 위한
헬퍼
- com.ibm.xtools.umlnotation 패키지를 통한 GMF 표기법
메타 모델로의 UML 2.1 특정 확장기능
UML 모델러
컴포넌트는 모델이 아닌 패키지의 UML 모델 컨텐츠를 지원합니다. 루트 요소가
모델이라는 모든 가정은 올바르지 않습니다. 모델은 패키지에 중첩될 수 없습니다.
모델에 소유자가 없다고 가정하지 않아야 하지만, 이 가정은
올바릅니다. UML 모델러 API가 이 가정의 manifestation을
관리합니다.
UML 모델러 자원을 사용하는 컴포넌트의 경우
다음 공통 패턴이 나타납니다.
모델 메타 클래스 및 관련 API
참조:
- org.eclipse.uml2.uml.Model 유형: 일반적으로 이 유형은
테스트, 변수 선언 및 메소드 서명의 인스턴스로 표시됩니다.
instanceof 사용 표현식 및 탭으로 구분된 특성 유형 필터에서와 같이 plugin.xml 파일에도 있습니다.
- UMLPackage.Literals.MODEL 및 UMLPackage.getModel() 메소드: 이 메소드는
자원 컨텐츠에서 이 유형의 요소를 검색하거나 EObject가 Model EClass의
인스턴스인지를 테스트하는 코드에 나타납니다.
- getModel()의 Element.getModel() 메소드 사용법: 이 메소드는
getModel()을 사용하여 루트 요소를 얻습니다. 루트 요소가 단순 패키지인 경우 값은 null입니다.
- Package.isModelLibrary() 메소드: 이 메소드는 modelLibrary로
스테레오타입화된 임의의 종류의 패키지에 사용되며 모델에만 적용되지
않습니다.
- EcoreUtil.getRootContainer() 및 ResourceUtil.getFirstRoot() 메소드:
이 메소드는 요소가 모델이라고 가정하는 경우에만 사용합니다. 예를 들어,
나중에 모델이 포함될 유형이 지정되지 않은 모델 목록에 이 메소드를
추가합니다.
plugin.xml 파일의 조치 필터:
- @isModel: 대부분의 경우 이 필터를 소유자가 없는 패키지와 일치하며
프로파일이 아닌 새 @isModelRoot 필터로 바꾸십시오.
- @isModelOrProfile: 대부분의 경우, 소유자가 없는 패키지와 일치하는
새 @isRootPackage 필터로 이 필터를 바꿉니다.
- @isPackage: 정확히 패키지인 메타 클래스가 있는 요소에 소유자가 있을 때
이 필터를 사용하십시오.
- @hasContainer 및 @hasNoContainer: 이 필터는 단순 패키지가
소유될 수 없음을 나타냅니다.
- umlType 및 umlStrictType: 이 필터는 "Model" 값을
테스트합니다.
기타:
- Java™는
모델 요소 유형 및 특수성을 나타내는 상수(com.ibm.xtools.uml.type.UMLElementTypes.MODEL)를 작성합니다.
( com.ibm.xtools.uml.core.internal.util.UMLType.MODEL은 사용되지 않음)
- 프로파일 제한조건 또는 XML에서 나타날 수 있는 OCL 표현식
- 다음에 대한 액세스를 제공합니다.
- Model.allInstances(), oclIsKindOf(Model), oclIsTypeof(Model), oclAsType(Model)과 같은 메소드를 사용하는 모델 메타클래스.
- Element::getModel()과 같은 메소드를 사용하는 UML 정의 조작.
- 모델이 아니라 패키지여야 하는 템플리트 또는 라이브러리의
UML 모델 템플리트 및 라이브러리.
- 모델 메타 클래스를 확장하는 스테레오타입의 UML 프로파일(대신,
Package를 확장해야 할 수도 있음).
- JET 템플리트, BIRT 보고서, XSLT 스타일시트 등에 대해 초기 /Model 단계가
있는 XPath 표현식.
- 컴포넌트가 정의할 수 있는 모델 요소 유형의 특수성을 찾으며
모델 요소 유형(GMF 요소 유형)의 ID인 "com.ibm.xtools.uml.model".
com.ibm.xtools.modeler.ui.UMLModeler 클래스
com.ibm.xtools.modeler.ui.UMLModeler 패키지에는
UMLModeler 클래스가 포함됩니다. UMLModeler 클래스는 모델 및 프로파일
라이프사이클 조작을 공개하며 모델링 플랫폼에 대한 액세스를 제공하는
유틸리티 클래스입니다. UMLModeler 클래스에는 saveModelResourceAs(Element model, String file) 및 saveProfileAs(Profile profile, String file) 메소드가 있습니다.
saveModelResourceAs(Element model, String file) 메소드는 루트 모델 요소가 지정하는 모델을
file이 지정하는 위치에 저장합니다. saveProfileAs(Profile
profile, String file) 메소드는 프로파일이 지정하는 프로파일을
file이 지정하는 위치에 저장합니다.
주: Eclipse 문서 또는 개발자 안내서에 대한 링크와 같은 일부 정보는
제품 도움말의 주제에서만 사용 가능합니다.