2012-07-18 6 views
2

사람 EMF 모델이 있다고 가정 해 봅시다. 이 모델 bob.person과 mike.person의 인스턴스를 2 개 만듭니다. 내 작업 공간에서 Person 인 모든 모델의 컬렉션을 만들고 OCL 또는 EMF 쿼리를 사용하여 쿼리하는 방법이 있습니까?작업 공간의 모든 모델 작업

답변

3

예.

먼저, 작업 공간에서 일부 유형의 모든 모델 모음을 작성하려면 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 

를 만들 : 당신은 설정 리소스의 모든 루트 요소를 수집 할 수 있습니다.

관련 문제