Search in sources :

Example 1 with BModel

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;
}
Also used : ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) IPath(org.eclipse.core.runtime.IPath) IResource(org.eclipse.core.resources.IResource) Resource(org.eclipse.emf.ecore.resource.Resource) ResourceSet(org.eclipse.emf.ecore.resource.ResourceSet) IOException(java.io.IOException) EPackage(org.eclipse.emf.ecore.EPackage) BPackage(org.obeonetwork.dsl.ecorebinding.BPackage) BModel(org.obeonetwork.dsl.ecorebinding.BModel) EObject(org.eclipse.emf.ecore.EObject)

Aggregations

IOException (java.io.IOException)1 IResource (org.eclipse.core.resources.IResource)1 IPath (org.eclipse.core.runtime.IPath)1 EObject (org.eclipse.emf.ecore.EObject)1 EPackage (org.eclipse.emf.ecore.EPackage)1 Resource (org.eclipse.emf.ecore.resource.Resource)1 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)1 ResourceSetImpl (org.eclipse.emf.ecore.resource.impl.ResourceSetImpl)1 BModel (org.obeonetwork.dsl.ecorebinding.BModel)1 BPackage (org.obeonetwork.dsl.ecorebinding.BPackage)1