다이어그램을 사용하여 입력을 지정하는 모델에서 모델로 변환에 대한 샘플 구성

이 샘플에는 다이어그램을 사용하여 모델에서 모델로 변환에 대한 입력을 지정하는 방법이 표시됩니다. 이 주제는 이러한 종류의 변환을 실행 및 설정하는 방법을 설명합니다.
시작하기 전에
샘플을 설정하려면 "다이어그램을 사용하여 입력을 지정하는 모델에서 모델로 변환에 대한 설정 지시사항" 주제의 지시사항을 사용하십시오.
  1. 런타임 Workbench에서 소스 및 변환 구성을 검토하십시오.
    1. 다이어그램 및 모델을 펼치고 다이어그램 및 모델 요소가 소스 프로젝트에 포함되어 있음을 참고하십시오.
    2. run test.tc를 마우스 오른쪽 단추로 클릭하고 열기 > 변환 구성 편집기를 클릭하십시오.
    3. 변환 구성 편집기에서 특성 탭을 클릭하십시오. 특성 DiagramName에 지정된 값은 프로젝트의 다이어그램 중 하나인 Main1입니다.
    4. 변환 구성 편집기에서 기본 탭을 클릭한 다음 실행을 클릭하십시오.
    5. 변환의 출력을 검토하십시오. 출력에는 입력 다이어그램 Main1에서 지정된 Class2, Class4 및 Class6이 포함됩니다.
  2. 변환이 설정되는 방법을 이해하려면 작업공간으로 가져온 프로젝트를 검토하십시오.
    1. src를 펼치고 com.ibm.xtools.transform.authoring.examples.classesindiagram을 펼친 후 TransformationProvider 클래스 ClassesInDiagramTransformationProvider를 여십시오.
    2. TransformationProvider 클래스가 변환 컨텍스트의 다이어그램 이름을 검색하여 글로벌 변수에 저장함을 참고하십시오. 코드는 다음과 같습니다.
      protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
            return new RootTransformation(descriptor, new MainTransform() {
      		@Override
      		public void execute(ITransformContext context) throws Exception {
      			diagramName = (String)context.getPropertyValue("diagramname");
      	addGeneratedTransformElements(registry);
      		}        	
             });
         }
      
         public static String diagramName = null;
    3. 모델을 펼치고 맵핑 파일 ClassesInDiagram.mapping을 여십시오.
    4. Model2Model 맵핑 선언에서 두 번째 packagedElement-to-packagedElement 서브맵을 마우스 오른쪽 단추로 클릭한 후 특성에 표시를 클릭하십시오. 이 서브맵은 Class2Class 맵핑입니다.
    5. 특성 창에서 사용자 정의 추출기 탭을 클릭하십시오. 사용자 정의 추출기는 지정된 다이어그램의 컨텐츠를 참조하여 처리해야 하는 클래스를 판별하는 데 글로벌 변수를 사용합니다. Package2Package 맵핑 선언의 Class2Class 서브맵 맵핑에 대한 사용자 정의 추출기도 이와 동일합니다.
  3. 런타임 Workbench에 있는 특성 페이지의 변환 구성 편집기에서 diagramName 필드의 값을 "Main2"로 바꾸고 변환을 다시 실행하십시오. 이번에는 변환에 실패합니다.

    구성에서 다이어그램의 이름이 Main2로 지정되면 변환에 실패하는데, 그 이유는 소스 모델에는 Class5에서 Class까지의 일반화가 포함되지만 Class1이 지정된 다이어그램에 표시되지 않아 대상 모델에 복사되지 않기 때문입니다.

    사용자가 변환을 작성하는 경우, 모든 내부 모델 참조가 해결될 수 있도록 동일한 모델에 포함된 모든 참조 오브젝트가 변환에 포함되어야 함을 참고하십시오.

관련 정보
다이어그램을 사용하여 입력을 지정하는 모델에서 모델로 변환에 대한 설정 지시사항

피드백