2
사람 EMF 모델이 있다고 가정 해 봅시다. 이 모델 bob.person과 mike.person의 인스턴스를 2 개 만듭니다. 내 작업 공간에서 Person 인 모든 모델의 컬렉션을 만들고 OCL 또는 EMF 쿼리를 사용하여 쿼리하는 방법이 있습니까?작업 공간의 모든 모델 작업
사람 EMF 모델이 있다고 가정 해 봅시다. 이 모델 bob.person과 mike.person의 인스턴스를 2 개 만듭니다. 내 작업 공간에서 Person 인 모든 모델의 컬렉션을 만들고 OCL 또는 EMF 쿼리를 사용하여 쿼리하는 방법이 있습니까?작업 공간의 모든 모델 작업
예.
먼저, 작업 공간에서 일부 유형의 모든 모델 모음을 작성하려면 Eclipse 자원 API를 사용하십시오.
IResourceVisitor
은 특정 확장명을 가진 파일을 검색하여 수집 할 때 유용합니다.
ResourceSet personSet = new ResourceSetImpl();
for (IResource res : foundIResources) {
personSet.getResource(URI.createFileUTI(res.getFullPath(), true);
}
다음으로 결과 집합에 대해 쿼리를 실행해야합니다.
Set<EObject> roots = new HashSet<EObject>;
for (Resource res : personSet.getResources()) {
roots.addAll(res.getContent());
}
또는 EMF 모델 쿼리 문에서 함께 사용하는 비슷한 기능을 가진
IEObjectSource
를 만들 : 당신은 설정 리소스의 모든 루트 요소를 수집 할 수 있습니다.