package jetbrains.mps.project.foreign; /*Generated by MPS */ import jetbrains.mps.vfs.IFile; import org.jdom.JDOMException; import java.io.IOException; import org.jdom.Element; import jetbrains.mps.util.JDOMUtil; import jetbrains.mps.util.xml.XmlUtil; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.internal.collections.runtime.IWhereFilter; public class IdeaModuleConfiguration { private MPSFacetConfiguration myMpsFacetConfiguration; private IFile myFile; private IdeaModuleConfiguration(IFile file) { this.myFile = file; } public IFile getModuleFile() { return myFile; } public MPSFacetConfiguration getMPSFacetConfiguration() { return myMpsFacetConfiguration; } private void setMPSFacetConfiguration(MPSFacetConfiguration mpsFacet) { this.myMpsFacetConfiguration = mpsFacet; } public static IdeaModuleConfiguration readFile(IFile moduleFile) throws JDOMException, IOException, FacetConfigurationFormatException { IdeaModuleConfiguration imc = new IdeaModuleConfiguration(moduleFile); Element module = JDOMUtil.loadDocument(moduleFile).getRootElement(); Iterable<Element> components = XmlUtil.children(module, "component"); Element facetManager = Sequence.fromIterable(components).findFirst(new IWhereFilter<Element>() { public boolean accept(Element it) { return "FacetManager".equals(it.getAttributeValue("name")); } }); if (facetManager == null) { return imc; } Element mpsFacet = Sequence.fromIterable(XmlUtil.children(facetManager, "facet")).findFirst(new IWhereFilter<Element>() { public boolean accept(Element fct) { return "MPS".equals(fct.getAttributeValue("name")); } }); if (mpsFacet == null) { return imc; } Element cfg = XmlUtil.first(mpsFacet, "configuration"); if (cfg != null) { MPSFacetConfiguration mpsFacetConfig = new MPSFacetConfiguration(); mpsFacetConfig.readFromXml(cfg); imc.setMPSFacetConfiguration(mpsFacetConfig); } return imc; } }