use of org.obeonetwork.dsl.ecorebinding.BModel in project InformationSystem by ObeoNetwork.
the class EcorebindingModelWizardSpec method createInitialModel.
/**
* (non-Javadoc)
* @see org.obeonetwork.dsl.ecorebinding.presentation.EcorebindingModelWizard#createInitialModel()
*/
@Override
protected EObject createInitialModel() {
IPath ecoreFilePath = this.ecoreSelectionWizardPage.getEcoreFilePath();
ResourceSet ecorers = new ResourceSetImpl();
Resource ecoreResource = ecorers.getResource(URI.createFileURI(ecoreFilePath.toFile().getAbsolutePath()), true);
try {
ecoreResource.load(new HashMap<String, String>());
} catch (IOException e) {
e.printStackTrace();
}
ResourceSet rs = new ResourceSetImpl();
IPath ecoreBindingModelPath = ecoreFilePath;
ecoreBindingModelPath = ecoreFilePath.removeFileExtension().addFileExtension("ecorebinding");
Resource resource = rs.createResource(URI.createFileURI(ecoreBindingModelPath.toFile().getAbsolutePath()));
BModel ecoreBindingModel = EcorebindingFactory.eINSTANCE.createBModel();
List<EObject> contents = ecoreResource.getContents();
for (EObject eObject : contents) {
// We only support EPackage as root element.
if (eObject instanceof EPackage) {
EPackage rootPackage = (EPackage) eObject;
BPackage ecoreBindingPackage = EcorebindingFactory.eINSTANCE.createBPackage();
ecoreBindingPackage.setEcorePackage(rootPackage);
ecoreBindingModel.getBPackages().add(ecoreBindingPackage);
explore(rootPackage, ecoreBindingPackage);
} else {
throw new IllegalArgumentException("The Ecore Binding only supports EPackage as root element");
}
}
resource.getContents().add(ecoreBindingModel);
try {
resource.save(new HashMap<String, String>());
} catch (IOException e) {
e.printStackTrace();
}
return ecoreBindingModel;
}
Aggregations