단일 입력 오브젝트에서 여러 개의 오브젝트를 생성하는 변환에 대한 상호 종속 맵핑 선언

상호 종속 맵핑 선언을 사용하여 단일 입력 오브젝트에서 여러 개의 관련 오브젝트를 작성하는 변환을 작성할 수 있습니다.

모델에서 모델로 변환에서 맵핑 선언마다 단 하나의 출력 유형을 지정할 수 있습니다. 그 결과, 맵핑된 선언에서 변환을 생성하고 실행할 때 모든 출력 오브젝트는 지정된 유형의 오브젝트입니다.

맵핑 선언에서 서브맵 맵핑을 사용하여 출력 오브젝트의 기능을 채우는 추출기를 생성할 수 있습니다. 그러나 서브맵 맵핑을 작성하려면 먼저 추출기가 채울 기능이 맵핑 선언의 출력 유형에 표시 가능해야 합니다.

주: 기본적으로 많은 기능이 필터링됩니다. 필터링 레벨을 변경하여 기능을 표시할 수 있습니다. 자세한 정보는 "맵핑 선언에서 입력 및 출력 오브젝트의 기능 표시 및 숨기기" 주제를 참조하십시오.

필요한 기능이 표시되지 않는 경우 솔루션은 요소의 기능 대신 전체 요소를 서브맵 맵핑의 입력 오브젝트로 사용하는 것입니다.

요소 기능이 서브맵 맵핑에 대한 입력 오브젝트인 경우 일반적으로 기능의 컨텐츠가 추출되어 서브맵 변환으로 전달됩니다. 그러나 요소가 서브맵 맵핑의 입력 오브젝트인 경우 변환은 해당되는 모든 기능을 포함하여 전체 요소의 인스턴스를 전달합니다. 결과적으로, 생성된 변환 소스 코드에서 모든 기능이 후속 변환에 사용할 수 있습니다.

이 접근방식은 사용 가능한 맵핑 스키마가 맵핑 선언의 입력 요소에서 생성하려는 모든 오브젝트에 대한 단일 맵핑 선언 컨텍스트(메뉴 관련인 경우) 내에서 서브맵을 제공할 수 없는 경우에 유용합니다. 두 개 이상의 변환이 동일한 입력 오브젝트 처리에 사용 가능하도록 둘 이상의 맵핑 선언을 정의하기 위해 이 기술을 사용할 수 있습니다.

일부 기능이 서브맵 대상으로 표시될 수 없는 이유

입력 유형과 같이 출력 유형은 유형 계층 구조로 구성됩니다. 유형의 자손은 새 기능을 조상 유형에 추가하여 조상의 유형 정의를 확장합니다. 다형성을 지원하기 위해 기능은 종종 유형 계층 구조에 포함되지 않는 유형입니다.

예를 들어, 기능은 "클래스"나 "인터페이스"가 아닌 "클래스류" 유형일 수 있습니다. 맵핑 편집기에서, "클래스류" 유형의 기능을 펼쳐서 "클래스류"가 보유하는 기능을 볼 수 있습니다. 그러나 "클래스류"가 보유하지 않는 "클래스" 또는 "인터페이스"가 보유하는 기능은 볼 수 없습니다. 이러한 가시성 부족은 사용자가 추가된 해당 기능에 대한 맵핑을 직접 작성할 수 없음을 의미합니다.

대체 솔루션

이전에 제시된 솔루션의 장점은 Java™ 코드를 작성하지 않아도 되는 것입니다. 두 가지의 대체 솔루션(둘 다 사용자 정의 Java 코드가 필요함)이 사용 가능하고 특정 상황에서 종종 더 단순하거나, 유지보수 가능하거나, 융통성 있는 솔루션일 수 있습니다.


피드백