질문/문제EMF에서 POUO를 ESuperType으로 사용할 수 있습니까?
비 EMF 인식 API에서 오는 일반 자바 클래스 감안할 때 같은
public class BankAccount {
String ownerName;
int accountNumber;
// ...
}
또한이의 내가 변경하거나 (이 클래스를 재 컴파일 할 수 없습니다하고 있다고 가정하자 그것은 API에서 온 것이기 때문에).
이 클래스를 EMF의 EClass에 대한 ESuperType으로 사용하는 간단한 방법이 있습니까? (그리고 물론, 단일 클래스는 단지 예일뿐입니다. 30-50 클래스로 구성된 API를 랩핑해야합니다 ...).
자신의 생각
는 개인적으로, 나는 그것이 상자 밖으로 불가능하다 생각합니다.
저는 두 가지 방법 만 생각할 수 있습니다. 두 가지 방법 모두 상당한 노력과 실현이 쉽지 않습니다.
(
EAttributes
같은ownerName
와accountNumber
을 갖는EBankAccount
) 원래 클래스를 반영한는 Ecore 모델과 대응EStructuralFeatures
으로 해당 필드를 복사하여 원래 객체를 포함하고있는 유틸리티 방법/메커니즘을 만들기EAdapter
들 더하는 두 개체를 동기화 할 책임이 있습니다.EMF 계약서 (=
EObject
인터페이스 등 구현)와 동시에 생성 된 코드에서 원본 클래스를 EMF.CodeGen에 수퍼 클래스로 만들 수있는 마법을 수행합니다. .
하지만 어쩌면이 EMF의 일부 숨겨진 기능 (또는 기존의 확장)이 라인을 따라 무언가를, 그리고 나는 그것을 인식하지입니까?
+1 "인스턴스 유형 이름"속성. 나는 그것을 사용한 적이 없다. 나는 그걸 가지고 놀고 그것이하는 일을 보게 될 것이다 ... –