서브맵 맵핑 규칙에서 입력 오브젝트 및 출력 오브젝트 필터 지정

입력 및 출력 오브젝트의 속성은 기타 오브젝트의 콜렉션이 될 수 있습니다. 맵핑 선언에서 서브맵 맵핑 규칙을 지정할 때 속성 콜렉션에서 요소에 적용되는 입력 및 출력 필터를 작성할 수 있습니다. 변환을 실행할 때 콜렉션의 각 요소에 필터가 적용됩니다. 필터가 요소에 대해 true를 리턴하면 요소가 변환됩니다.
시작하기 전에

맵핑 모델이 열려 있어야 합니다. 맵핑 모델의 파일 이름 확장자는 .mapping입니다. 맵핑 모델에는 하나 이상의 맵핑 선언이 있어야 합니다및 서브맵 맵핑 규칙이 맵핑 선언에 정의되어야 합니다.

이 태스크 정보

서브맵 맵핑 규칙에서 입력 또는 출력 오브젝트 필터를 작성하려면 다음을 수행하십시오.

  1. 편집기 영역에서 서브맵 맵핑 규칙을 마우스 오른쪽 단추로 클릭한 후 특성에 표시를 클릭하십시오.
  2. 특성 보기에서 입력 필터 또는 출력 필터 탭을 클릭하십시오.
  3. 입력 요소 필터 또는 출력 요소 필터 선택란을 선택하십시오.
    주: 입력 오브젝트 필터를 작성 중인 경우 선택란에서 선택 표시를 지우면, 사용자가 변환을 실행할 때 서브맵 맵핑 규칙이 목록의 모든 요소에 적용됩니다. 출력 오브젝트 필터를 작성 중인 경우 선택란에서 선택 표시를 지우면, 후보 출력 오브젝트에서 첫 번째 오브젝트가 출력 속성에서 참조됩니다.
  4. 필터에 대한 코드를 지정하려면 다음 단계 중 하나를 완료하십시오.
    • 인라인을 클릭하고 코드 옵션 아래에 있는 텍스트 영역에서 Java™ 코드를 입력한 후 적용을 클릭하십시오. 지정하는 코드는 부울 값을 리턴해야 합니다. 메소드 본문만 지정할 수 있습니다. 변환 작성 프레임워크는 메소드 서명을 정의합니다.
      팁: 올바른 변수 이름 목록을 표시하려면 인라인 단추 아래에 있는 텍스트 영역에서 Ctrl+Space를 누르십시오.
      주: 입력 필터의 경우 속성에 있는 콜렉션의 현재 값을 제공하는 <name>_src 변수를 지정할 수 있습니다. 출력 필터의 경우에는 속성에 있는 콜렉션의 현재 값을 제공하는 <name>_tgt 변수를 지정할 수 있습니다.
    • 외부를 클릭하여 서브맵 맵핑 규칙에 대한 필터로 적용할 코드가 있는 Java 클래스를 지정하십시오. 사용자가 지정하는 Java 클래스는 org.eclipse.emf.query.conditions.Condition 클래스를 확장해야 합니다. 또한 isSatisfied(Object object) 메소드를 구현해야 합니다. 여기서 object는 콜렉션의 현재 요소로 설정됩니다. 이 메소드는 부울 값을 리턴합니다. 찾아보기를 클릭하면 대화 상자에서 올바른 클래스가 선택됩니다.
      팁: 필터를 구현하는 클래스를 작성하려면 새로 작성을 클릭한 후 새 Java 클래스 창에서 필드를 완료하십시오.
  5. 파일 > 저장을 클릭하십시오.

예를 들어, 서브맵 맵핑 규칙의 입력 속성이 EClassifier 목록인 경우 요소마다 isAbstract 함수를 평가하는 입력 오브젝트 필터를 작성할 수 있습니다. isAbstract 함수의 매개변수는 목록에 있는 요소의 인스턴스입니다. Abstract인 각 EClassifier가 결과 세트에 추가됩니다. 변환을 실행할 때 서브맵 맵핑 규칙이 결과 세트의 각 EClassifier에 적용됩니다.


피드백