변환 확장

변환 확장을 사용하여 IBM® Rational® 모델링 제품에서 사용 가능한 변환이나 사용자 정의 변환을 확장 및 향상시킬 수 있습니다.

대상 변환의 작성자가 아닌 누군가가 변환 확장을 작성할 수 있습니다.

변환 프레임워크 확장성은 Eclipse 플러그인 아키텍처를 기초로 합니다. 변환 확장은 다음 항목을 포함하는 플러그인입니다. TransformationExtension 요소에서, targetTransformation 속성은 확장할 변환(대상 변환이라고도 함)을 지정합니다. 변환 확장 플러그인은 여러 개의 TransformationExtension 요소를 포함할 수 있습니다. 그러나 대상 변환의 도메인이 다른 경우 하나의 플러그인에서 여러 개의 TransformationExtension 요소를 작성하는 대신 변환 확장마다 독립 플러그인을 작성해야 합니다.

변환을 확장하려면 대상 변환의 extensiblepublic 특성이 true로 설정되는지 확인해야 합니다. 또한 확장점 정보와 대상 변환의 ID 그리고 대상 변환에 있는 변환의 ID를 확보해야 합니다. 대상 변환의 Manifest 파일에서 document 특성에 지정된 문서에서 이 정보를 얻을 수 있습니다.

또한 현재 작업공간에 없는 대상 변환의 ID를 지정할 수도 있습니다. 그러나 대상 변환이 등록될 때까지는 대상 변환을 실행하여 확장을 실행할 수 없습니다.

변환 확장을 작성한 후에는 대상 변환의 동작을 향상시키는 규칙, 추출기, 변환 및 특성을 선언할 수 있습니다. 이 요소를 선언하는 것이 변환 확장에서 처리 순서를 지정하는 것은 아닙니다. 선언하는 규칙, 추출기 또는 변환마다 RuleDefinition, ExtractorDefinition 또는 TransformDefinition 요소가 TransformationExtension 요소에 추가됩니다. 대상 변환을 실행할 때 코어 변환 기능은 요소에 대해 지정된 클래스를 로드하려고 시도하며 요소의 인스턴스를 대상 변환의 인스턴스에 추가합니다.

또한 변환 확장의 동작을 정제하는 특성을 정의할 수도 있습니다. 사용자가 정의하는 특성마다 TransformationExtension 요소에 특성 요소가 추가됩니다. 코어 변환 기능은 변환 확장의 특성과 대상 변환의 특성 사이에 구별되지 않습니다. 작성하는 특성이 이미 대상 변환에 존재하는 경우 다음 이벤트가 발생합니다.

변환 확장을 작성할 때 여러 개의 변환을 확장할 수 있습니다. 확장된 변환(대상 변환이라고도 함)은 대상 변환에 존재해야 합니다. 확장할 변환을 지정할 때 ExtendTransform 요소가 변환 확장 플러그인의 Manifest 파일에 추가됩니다.

변환 확장의 규칙, 추출기 및 변환을 선언한 후, 대상 변환 내에서 실행되는 순서를 지정할 수 있습니다. 확장 가능한 변환에는 요소 목록(0 기준 색인)이 포함됩니다. 이 목록은 변환 엔진이 변환에서 요소를 실행하는 순서를 지정합니다. 요소는 대상 변환에 추가할 때 색인 값을 지정하거나 새 요소 다음에 실행할 요소를 표시하여 대상 변환의 기존 요소에서 요소를 삽입할 위치를 표시할 수 있습니다.

다음 방법으로 색인 값을 지정할 수 있습니다.

색인 값을 지정하지 않으면 대상 변환의 끝에 요소가 삽입됩니다.

예를 들어, 변환을 확장하고 변환이 특정 모델 요소(예: 스테레오타입 지정된 클래스)를 처리하는 방법을 지정하는 ExtensionRule이라고 하는 규칙을 선언할 수 있습니다. 소스 모델에서 클래스 요소를 변환하는 특정 대상 변환에 이 규칙을 추가할 수 있습니다. 이 예제에서는 대상 변환에 다음 요소가 포함된다고 가정합니다. ExtensionRule 규칙이 ExtractorB 다음에 실행됨을 지정하려면 색인 값 2를 지정하십시오.
또한 시퀀스에서 새 요소 다음에 실행되는 요소의 ID를 지정하여 요소 순서를 지정할 수도 있습니다. 다음의 경우에 이 방법을 사용할 수 있습니다.

변환 확장에서 요소 정의, 확장할 변환 지정 및 대상 변환에 요소 추가를 수행한 후에는 변환 확장 플러그인을 컴파일하고 런타임 Workbench에서 테스트할 수 있습니다. 변환 확장 작성의 개발 및 테스트 단계(Phase) 중에, 개별적인 TransformationExtension 요소를 사용하거나 사용하지 않도록 설정할 수 있습니다. 변환 확장을 포함하는 플러그인을 배치한 후 각 TransformationExtension 요소가 사용되는지 확인하십시오.

변환 확장을 실행하려면 대상 변환을 실행해야 합니다. 대상 변환의 인스턴스가 요청될 때 변환 서비스는 연관된 모든 확장을 대상 변환의 인스턴스에 통합합니다.

여러 개의 변환 확장이 동일한 변환을 확장하고 변환 요소에 대한 색인 값이 충돌하거나 존재하지 않는 경우, 요소가 실행되는 순서는 시작 시 Eclipse가 수행하는 플러그인 Manifest 파일의 구문 분석에 의해 판별됩니다.


피드백