2016-07-01 8 views
0

기본 패밀리를위한 ecore 파일을 만들었고 모델, 편집 및 편집기 코드를 생성하고 응용 프로그램을 실행했습니다. 이제 패밀리 모델 파일을 만들 수 있습니다. 실행 시간.하지만 이제는 그 모델 파일을 읽어서 패밀리 모델 파일에 저장된 직렬화 된 객체를 가져오고 싶습니다.모델 파일에 저장된 직렬화 된 객체를 읽는 방법

모델 파일 형식

? XML 버전 = "1.0"인코딩 = "UTF-8"이다?

답변

0

이것은 일반적인 EMF 질문입니다 (저는 시리우스와 관련이 없습니다). EMF를 처음 사용하는 경우 this은 일부 문서를 참조합니다. 특히, this PDF은 "EMF 서적"의 샘플 장으로, 프레임 워크에 대한 간략한 개요를 제공합니다. 특히 Object Persistence 섹션에서 질문에 대한 답을 얻어야합니다 (특히 리소스/모델을 메모리에로드하는 방법을 보여주는 31 페이지의 코드 스 니펫).

0

당신은 기본적인 가족 메타 모델이 있고 그 모델, 편집 및 편집기 코드를 생성 한 경우에 당신이 그것을에서 ".basicfamily"모델을 만든 경우, 당신은이 코드 조각을 사용하여 읽을 수있는 경우 :

URI uri = URI.createURI(new File("path of your file").getAbsolutePath()); 
ResourceSet resourceSet = new ResourceSetImpl(); 
resourceSet.getPackageRegistry().put(BasicfamilyPackage.eNS_URI, BasicfamilyPackage.eINSTANCE); 
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("basicfamily", new XMIResourceFactoryImpl()); 
Resource resource = resourceSet.getResource(uri, true); 
List<EObject> contents = resource.getContents(); 
// now you can iterate on the root objects of your model, use EObject#getContents() to 
// retrieve the children of an EObject and thus navigate in your data 

메타 코드가 설치된 이클립스 플러그인에서이 코드를 실행하는 경우이 코드의 일부 (패키지 레지스트리에 기본 패밀리 EPackage 추가 및 자원 팩토리 등록)가 필요하지 않을 수 있습니다. 생성 된 프로젝트의 plugin.xml에 의해 처리됩니다.