private void init(IFile file) throws AmlUIException { IProject project = file.getProject(); File propertiesFile = org.eclipse.gmt.weaver.plugin.util.WeaverUtil.getPropertyFilePath(file).toFile(); // Config file try { InputStream in = AmlUIResourceManager.getDefault().getAmlFile(project).getContents(); IModel[] amlAndProblemModels = AmlCompiler.getDefault().injectAMLTextFile(in); IModel amlInjected = amlAndProblemModels[0]; // TODO centralize the logging of aml file problems String metametamodel = (String) AmlModelUtils.getDefault().getMatchingMetametamodel(amlInjected); String resPath = AmlUIResourceManager.getDefault().getPath(file); EMFModel equalModel = AmlResourceManager.getDefault() .loadModel(resPath, AmlResourceManager.getDefault().getEqualMetamodel()); WeaverXMLMetadata xml = new WeaverXMLMetadata(propertiesFile); xml.createXMLConfigFile( getModelInfos(equalModel, metametamodel, project.getName()), file.getFullPath().toString(), weavingPanel, EqualModelUtils.wmodel, Collections.EMPTY_LIST, Collections.EMPTY_LIST, ResourceUtils.getPathWithSeparator( project.getFullPath().toString(), AmlResourceManager.metamodelsFolderName, AmlResourceManager.equalMMName)); IContainer fileContainer = file.getParent(); fileContainer.refreshLocal(IResource.DEPTH_ONE, null); } catch (ATLCoreException e) { // TODO Auto-generated catch block throw new AmlUIException(IStatus.ERROR, "The equal model cannot be loaded"); } catch (Exception e) { // TODO Auto-generated catch block throw new AmlUIException(IStatus.ERROR, e); } }
private WovenModelDescriptor createDesc( EObject wModelRef, String modelRefName, String id, String metametamodel, String projectName) { WovenModelDescriptor desc = new WovenModelDescriptor(); String ref = (String) WeaverUtil.get(wModelRef, "ref"); if (AmlResourceManager.KM3MMName.startsWith(metametamodel)) { desc.setMetamodelFile( ResourceUtils.getPathWithSeparator( projectName, AmlResourceManager.metamodelsFolderName, AmlResourceManager.KM3MMName)); desc.setModelFile(ref); } else { // Ecore desc.setMetamodelFile(ref); desc.setModelFile("null"); } desc.setPanel(wModelRefPanel); desc.setWModelRef(EqualModelUtils.wModelRefType); desc.setNameProperty(modelRefName); desc.setReferenceName(modelRefName); desc.setId(id); return desc; }