List of usage examples for org.jdom2 Element setName
public Element setName(final String name)
From source file:org.onebusaway.rss.impl.ServiceAlertRssModuleGenerator.java
License:Apache License
@Override public void generate(Module module, Element element) { // this is not necessary, it is done to avoid the namespace definition in every item. Element root = element;//from w ww . ja v a 2 s . c o m while (root.getParent() != null && root.getParent() instanceof Element) { root = (Element) element.getParent(); } root.addNamespaceDeclaration(SERVICE_ALERT_NS); Element sas = null; Element channel = getElement(root, "channel"); if (channel == null) { throw new RuntimeException("missing channel from element=" + root); } sas = getElement(channel, "ServiceAlerts"); if (sas == null) { sas = generateSimpleElement("ServiceAlerts", ""); sas.setName("ServiceAlerts"); channel.addContent(sas); } if (module instanceof IServiceAlert) { IServiceAlert isa = (IServiceAlert) module; if (isa.getId() != null) { Element sa = generateSimpleElement("ServiceAlert", ""); sa.setName("ServiceAlert"); sa.addContent(generateSimpleElement("id", isa.getId())); sa.addContent(generateSimpleElement("summary", isa.getSummary())); sa.addContent(generateSimpleElement("description", isa.getDescription())); sa.addContent(generateSimpleElement("reason", isa.getReason())); sa.addContent(generateSimpleElement("severity", isa.getSeverity())); if (isa.getPublicationWindows() != null && !isa.getPublicationWindows().isEmpty()) { Element publicationWindows = generateSimpleElement("PublicationWindows", ""); publicationWindows.setName("PublicationWindows"); sa.addContent(publicationWindows); for (TimeRangeRssBean trb : isa.getPublicationWindows()) { Element timeRange = generateSimpleElement("TimeRange", ""); timeRange.addContent(generateSimpleElement("from", "" + trb.getFrom())); timeRange.addContent(generateSimpleElement("to", "" + trb.getTo())); publicationWindows.addContent(timeRange); } } if (isa.getAffectsClauses() != null && !isa.getAffectsClauses().isEmpty()) { Element affectsClauses = generateSimpleElement("AffectsClauses", ""); affectsClauses.setName("AffectsClauses"); sa.addContent(affectsClauses); for (AffectsClauseRssBean acrb : isa.getAffectsClauses()) { Element affect = generateSimpleElement("Affect", ""); if (acrb.getAgencyId() != null && acrb.getRouteId() == null && acrb.getStopId() == null && acrb.getTripId() == null) affect.addContent(generateAgencyElement("agencyId", acrb.getAgencyId())); if (acrb.getRouteId() != null) affect.addContent(generateAgencyElement("routeId", acrb.getRouteId())); if (acrb.getStopId() != null) affect.addContent(generateAgencyElement("stopId", acrb.getStopId())); if (acrb.getTripId() != null) affect.addContent(generateAgencyElement("tripId", acrb.getTripId())); affectsClauses.addContent(affect); } } sas.addContent(sa); } } else { _log.error("unknown type=" + module); } }
From source file:org.onebusaway.rss.impl.ServiceAlertRssModuleGenerator.java
License:Apache License
protected Element generateAgencyElement(String key, String agencyId) { Element agency = new Element("Agency", SERVICE_ALERT_NS); agency.setName("Agency"); try {/*from www . j a v a2s. c o m*/ AgencyAndId agencyAndId = AgencyAndId.convertFromString(agencyId); agency.addContent(generateSimpleElement("agency", agencyAndId.getAgencyId())); agency.addContent(generateSimpleElement(key, agencyAndId.getId())); return agency; } catch (Exception e) { agency.addContent(generateSimpleElement(key, agencyId)); return agency; } }
From source file:org.openflexo.foundation.fml.rm.ViewPointResourceImpl.java
License:Open Source License
public static void convertViewPoint(ViewPointResource viewPointResource) { File viewPointDirectory = ResourceLocator.retrieveResourceAsFile(viewPointResource.getDirectory()); File xmlFile = (File) viewPointResource.getFlexoIODelegate().getSerializationArtefact();// getFile(); logger.info("Converting " + viewPointDirectory.getAbsolutePath()); File diagramSpecificationDir = new File(viewPointDirectory, "DiagramSpecification"); diagramSpecificationDir.mkdir();//from w ww. j a va2 s . com logger.fine("Creating directory " + diagramSpecificationDir.getAbsolutePath()); try { Document viewPointDocument = XMLUtils.readXMLFile(xmlFile); Document diagramSpecificationDocument = XMLUtils.readXMLFile(xmlFile); for (File f : viewPointDirectory.listFiles()) { if (!f.equals(xmlFile) && !f.equals(diagramSpecificationDir) && !f.getName().endsWith("~")) { if (f.getName().endsWith(".shema")) { try { File renamedExampleDiagramFile = new File(f.getParentFile(), f.getName().substring(0, f.getName().length() - 6) + ".diagram"); FileUtils.rename(f, renamedExampleDiagramFile); f = renamedExampleDiagramFile; } catch (IOException e) { e.printStackTrace(); } } File destFile = new File(diagramSpecificationDir, f.getName()); FileUtils.rename(f, destFile); logger.fine("Moving file " + f.getAbsolutePath() + " to " + destFile.getAbsolutePath()); } if (f.getName().endsWith("~")) { f.delete(); } } Element diagramSpecification = XMLUtils.getElement(diagramSpecificationDocument, "ViewPoint"); diagramSpecification.setName("DiagramSpecification"); FileOutputStream fos = new FileOutputStream( new File(diagramSpecificationDir, "DiagramSpecification.xml")); Format prettyFormat = Format.getPrettyFormat(); prettyFormat.setLineSeparator(LineSeparator.SYSTEM); XMLOutputter outputter = new XMLOutputter(prettyFormat); try { outputter.output(diagramSpecificationDocument, fos); } catch (IOException e) { e.printStackTrace(); } fos.flush(); fos.close(); } catch (JDOMException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } ((ViewPointResourceImpl) viewPointResource).exploreVirtualModels(viewPointResource.getDirectory()); }
From source file:org.openflexo.foundation.fml.rm.ViewPointResourceImpl.java
License:Open Source License
private static void convertDiagramSpecification16ToVirtualModel17(File file, Document diagram, List<File> oldPaletteFiles, List<File> oldExampleDiagramFiles, ViewPointResource viewPointResource) { // Create the diagram specification and a virtual model with a diagram typed model slot referencing this diagram specification final String ADDRESSED_DIAGRAM_MODEL_SLOT = "AddressedDiagramModelSlot"; final String MODELSLOT_VIRTUAL_MODEL_MODEL_SLOT = "ModelSlot_VirtualModelModelSlot"; final String MODELSLOT_TYPED_DIAGRAM_MODEL_SLOT = "ModelSlot_TypedDiagramModelSlot"; try {//from w ww . j a va 2s.co m String diagramName = file.getName().replace(".xml", ""); // Create a folder that contains the diagram specification File diagramSpecificationFolder = new File( file.getParentFile() + "/" + diagramName + ".diagramspecification"); diagramSpecificationFolder.mkdir(); // Retrieve diagram drop schemes Iterator<Element> dropSchemeElements = diagram.getDescendants(new ElementFilter("DropScheme")); List<Element> dropSchemes = IteratorUtils.toList(dropSchemeElements); // Retrieve Diagram Model slots references Iterator<? extends Content> thisModelSlotsIterator = diagram.getDescendants( new ElementFilter("DiagramModelSlot").or(new ElementFilter(ADDRESSED_DIAGRAM_MODEL_SLOT))); List<Element> thisModelSlots = IteratorUtils.toList(thisModelSlotsIterator); // Retrieve the DiagramModelSlot (this), and transform it to a virtual model slot with a virtual model uri int thisID = 0; String newThisUri = viewPointResource.getURI() + "/" + diagramName; String diagramSpecificationURI = newThisUri + "/" + diagramName + ".diagramspecification"; Element typedDiagramModelSlot = null; boolean foundThis = false; for (Element thisMs : thisModelSlots) { // Retriev the ID and URI of this DiagramModelSlot if (thisMs.getAttribute("name") != null && thisMs.getAttributeValue("name").equals("this") && !foundThis) { // Store its ID and its URI thisID = thisMs.getAttribute("id").getIntValue(); if (thisMs.getAttributeValue("virtualModelURI") != null) { newThisUri = thisMs.getAttributeValue("virtualModelURI"); thisMs.removeAttribute("virtualModelURI"); thisMs.removeAttribute("name"); thisMs.getAttribute("id").setName("idref"); thisMs.setAttribute("idref", Integer.toString(thisID)); } // Replace by a Typed model slot typedDiagramModelSlot = new Element(MODELSLOT_TYPED_DIAGRAM_MODEL_SLOT); typedDiagramModelSlot.setAttribute("metaModelURI", diagramSpecificationURI); typedDiagramModelSlot.setAttribute("name", "typedDiagramModelSlot"); typedDiagramModelSlot.setAttribute("id", Integer.toString(computeNewID(diagram))); foundThis = true; } } // Replace the Diagram Model Slot by a Virtual Model Model slot for (Element thisMs : thisModelSlots) { if (hasSameID(thisMs, thisID) && thisMs.getName().equals("DiagramModelSlot")) { thisMs.setName("FMLRTModelSlot"); thisMs.getAttributes().add(new Attribute("virtualModelURI", newThisUri)); thisMs.getAttributes().add(new Attribute("name", "virtualModelInstance")); thisMs.getAttributes().add(new Attribute("id", Integer.toString(thisID))); thisMs.removeAttribute("idref"); } } // Update ids for all model slots Iterator<? extends Content> diagramModelSlotsIterator = diagram.getDescendants( new ElementFilter("DiagramModelSlot").or(new ElementFilter(ADDRESSED_DIAGRAM_MODEL_SLOT))); List<Element> thisDiagramModelSlots = IteratorUtils.toList(diagramModelSlotsIterator); for (Element diagramMs : thisDiagramModelSlots) { if (diagramMs.getAttribute("id") != null && typedDiagramModelSlot != null) { diagramMs.setAttribute("id", typedDiagramModelSlot.getAttributeValue("id")); } if (diagramMs.getAttribute("idref") != null) { // Change to TypedDiagramModelSlot if (diagramMs.getParentElement().getName().equals("AddShape") || diagramMs.getParentElement().getName().equals("AddConnector") || diagramMs.getParentElement().getName().equals("AddDiagram") || diagramMs.getParentElement().getName().equals("ContainedShapePatternRole") || diagramMs.getParentElement().getName().equals("ContainedConnectorPatternRole") || diagramMs.getParentElement().getName().equals("ContainedDiagramPatternRole")) { if (typedDiagramModelSlot.getAttributeValue("id") != null) { diagramMs.setAttribute("idref", typedDiagramModelSlot.getAttributeValue("id")); diagramMs.setName("TypedDiagramModelSlot"); } } else { diagramMs.setName(MODELSLOT_VIRTUAL_MODEL_MODEL_SLOT); } } } for (Content content : diagram.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; if (element.getName().equals("AddShape") || element.getName().equals("AddConnector") || element.getName().equals("AddDiagram")) { if (element.getChild("TypedDiagramModelSlot") == null && element.getChild("AddressedDiagramModelSlot") == null) { Element adressedMsElement = new Element("TypedDiagramModelSlot"); Attribute newIdRefAttribute = new Attribute("idref", typedDiagramModelSlot.getAttributeValue("id")); adressedMsElement.getAttributes().add(newIdRefAttribute); element.addContent(adressedMsElement); } } } } // Update DiagramSpecification URI for (Content content : diagram.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; if (element.getAttribute("diagramSpecificationURI") != null) { String oldDiagramSpecificationUri = element.getAttributeValue("diagramSpecificationURI"); String diagramSpecificationName = oldDiagramSpecificationUri .substring(oldDiagramSpecificationUri.lastIndexOf("/")); String newDiagramSpecificationUri = oldDiagramSpecificationUri + diagramSpecificationName + ".diagramspecification"; element.getAttribute("diagramSpecificationURI").setValue(newDiagramSpecificationUri); } } } // Change all the "diagram" binding with "this", and "toplevel" with typedDiagramModelSlot.topLevel" in case of not // DropSchemeAction for (Content content : diagram.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; for (Attribute attribute : element.getAttributes()) { if (attribute.getValue().startsWith("diagram")) { attribute.setValue(attribute.getValue().replace("diagram", "this")); } if (attribute.getValue().startsWith("topLevel")) { boolean diagramScheme = false; Element parentElement = element.getParentElement(); while (parentElement != null) { if (parentElement.getName().equals("DropScheme") || parentElement.getName().equals("LinkScheme")) { diagramScheme = true; } parentElement = parentElement.getParentElement(); } if (!diagramScheme) { attribute.setValue(attribute.getValue().replace("topLevel", "virtualModelInstance.typedDiagramModelSlot")); } } } } } // Create the diagram specificaion xml file File diagramSpecificationFile = new File(diagramSpecificationFolder, file.getName()); Document diagramSpecification = new Document(); Element rootElement = new Element("DiagramSpecification"); Attribute name = new Attribute("name", diagramName); Attribute diagramSpecificationURIAttribute = new Attribute("uri", diagramSpecificationURI); diagramSpecification.addContent(rootElement); rootElement.getAttributes().add(name); rootElement.getAttributes().add(diagramSpecificationURIAttribute); XMLUtils.saveXMLFile(diagramSpecification, diagramSpecificationFile); // Copy the palette files inside diagram specification repository ArrayList<File> newPaletteFiles = new ArrayList<File>(); for (File paletteFile : oldPaletteFiles) { File newFile = new File(diagramSpecificationFolder + "/" + paletteFile.getName()); FileUtils.rename(paletteFile, newFile); newPaletteFiles.add(newFile); Document palette = XMLUtils.readXMLFile(newFile); Attribute diagramSpecUri = new Attribute("diagramSpecificationURI", diagramSpecificationURI); palette.getRootElement().getAttributes().add(diagramSpecUri); convertNames16ToNames17(palette); XMLUtils.saveXMLFile(palette, newFile); } // Copy the example diagram files inside diagram specification repository ArrayList<File> newExampleDiagramFiles = new ArrayList<File>(); for (File exampleDiagramFile : oldExampleDiagramFiles) { File newFile = new File(diagramSpecificationFolder + "/" + exampleDiagramFile.getName()); FileUtils.rename(exampleDiagramFile, newFile); newExampleDiagramFiles.add(newFile); Document exampleDiagram = XMLUtils.readXMLFile(newFile); exampleDiagram.getRootElement().setAttribute("uri", diagramSpecificationURI + "/" + exampleDiagram.getRootElement().getAttributeValue("name")); Attribute diagramSpecUri = new Attribute("diagramSpecificationURI", diagramSpecificationURI); exampleDiagram.getRootElement().getAttributes().add(diagramSpecUri); exampleDiagram.getRootElement().setAttribute("uri", diagramSpecificationURI + "/" + exampleDiagram.getRootElement().getAttributeValue("name")); convertNames16ToNames17(exampleDiagram); XMLUtils.saveXMLFile(exampleDiagram, newFile); } // Update the diagram palette element bindings ArrayList<Element> paletteElementBindings = new ArrayList<Element>(); for (File paletteFile : newPaletteFiles) { Document palette = XMLUtils.readXMLFile(paletteFile); String paletteUri = diagramSpecificationURI + "/" + palette.getRootElement().getAttribute("name").getValue() + ".palette"; Iterator<? extends Content> paletteElements = palette .getDescendants(new ElementFilter("DiagramPaletteElement")); while (paletteElements.hasNext()) { Element paletteElement = (Element) paletteElements.next(); Element binding = createPaletteElementBinding(paletteElement, paletteUri, dropSchemes); if (binding != null) { paletteElementBindings.add(binding); } } XMLUtils.saveXMLFile(palette, paletteFile); } // Add the Palette Element Bindings to the TypedDiagramModelSlot if (!paletteElementBindings.isEmpty()) { typedDiagramModelSlot.addContent(paletteElementBindings); } if (typedDiagramModelSlot != null) { diagram.getRootElement().addContent(typedDiagramModelSlot); } // Update names convertNames16ToNames17(diagram); convertOldNameToNewNames("DiagramSpecification", "VirtualModel", diagram); // Save the files XMLUtils.saveXMLFile(diagram, file); } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.openflexo.foundation.fml.rm.ViewPointResourceImpl.java
License:Open Source License
private static void convertNames16ToNames17(Document document) { // Convert common properties addProperty("userID", "FLX", document, null); // Edition Patterns // Edition patterns name convertOldNameToNewNames("EditionPattern", "FlexoConcept", document); // Parent pattern property is no more an attribute but an element IteratorIterable<? extends Content> fcElementsIterator = document .getDescendants(new ElementFilter("FlexoConcept")); List<Element> fcElements = IteratorUtils.toList(fcElementsIterator); for (Element fc : fcElements) { if (fc.getAttribute("parentEditionPattern") != null) { Element parentEp = new Element("ParentFlexoConcept"); Attribute parentIdRef = new Attribute("idref", getFlexoConceptID(document, fc.getAttributeValue("parentEditionPattern"))); parentEp.getAttributes().add(parentIdRef); fc.removeAttribute("parentEditionPattern"); fc.addContent(parentEp);/*from ww w. j a v a 2s. c o m*/ } } // Pattern Roles // Pattern roles properties changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "ContainedEditionPatternInstancePatternRole"); changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "AddressedSelectEditionPatternInstance"); changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "SelectEditionPatternInstance"); changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "EditionPatternInstanceParameter"); changePropertyName("paletteElementID", "paletteElementId", document, "FMLDiagramPaletteElementBinding"); changePropertyName("editionPattern", "flexoConcept", document, "PaletteElement"); removeProperties("patternRole", document); removeProperty("className", document, "DrawingGraphicalRepresentation"); removeProperty("className", document, "ShapeGraphicalRepresentation"); removeProperty("className", document, "ConnectorGraphicalRepresentation"); // Pattern roles name convertOldNameToNewNames("ContainedEditionPatternInstancePatternRole", "FlexoConceptInstanceRole", document); convertOldNameToNewNames("EditionPatternInstancePatternRole", "FlexoConceptInstanceRole", document); convertOldNameToNewNames("ContainedShapePatternRole", "ShapeRole", document); convertOldNameToNewNames("ShapePatternRole", "ShapeRole", document); convertOldNameToNewNames("ContextShapePatternRole", "ShapeRole", document); convertOldNameToNewNames("ParentShapePatternRole", "ParentShapeRole", document); convertOldNameToNewNames("ContainedEMFObjectIndividualPatternRole", "EMFObjectIndividualRole", document); convertOldNameToNewNames("EMFObjectIndividualPatternRole", "EMFObjectIndividualRole", document); convertOldNameToNewNames("ContainedConnectorPatternRole", "ConnectorRole", document); convertOldNameToNewNames("ConnectorPatternRole", "ConnectorRole", document); convertOldNameToNewNames("ContainedOWLIndividualPatternRole", "OWLIndividualRole", document); convertOldNameToNewNames("OWLIndividualPatternRole", "OWLIndividualRole", document); convertOldNameToNewNames("ContainedObjectPropertyStatementPatternRole", "ObjectPropertyStatementRole", document); convertOldNameToNewNames("ObjectPropertyStatementPatternRole", "ObjectPropertyStatementRole", document); convertOldNameToNewNames("ContainedDataPropertyStatementPatternRole", "DataPropertyStatementRole", document); convertOldNameToNewNames("DataPropertyStatementPatternRole", "DataPropertyStatementRole", document); convertOldNameToNewNames("ContainedExcelCellPatternRole", "ExcelCellRole", document); convertOldNameToNewNames("ExcelCellPatternRole", "ExcelCellRole", document); convertOldNameToNewNames("ContainedExcelSheetPatternRole", "ExcelSheetRole", document); convertOldNameToNewNames("ExcelSheetPatternRole", "ExcelSheetRole", document); convertOldNameToNewNames("ContainedExcelRowPatternRole", "ExcelRowRole", document); convertOldNameToNewNames("ExcelRowPatternRole", "ExcelRowRole", document); convertOldNameToNewNames("ContainedDiagramPatternRole", "DiagramRole", document); convertOldNameToNewNames("DiagramPatternRole", "DiagramRole", document); convertOldNameToNewNames("ContainedXMLIndividualPatternRole", "XMLIndividualRole", document); convertOldNameToNewNames("XMLIndividualPatternRole", "XMLIndividualRole", document); convertOldNameToNewNames("ContainedXSIndividualPatternRole", "XSIndividualRole", document); convertOldNameToNewNames("XSIndividualPatternRole", "XSIndividualRole", document); convertOldNameToNewNames("ContainedXSClassPatternRole", "XSClassRole", document); convertOldNameToNewNames("XSClassPatternRole", "XSClassRole", document); // Actions convertOldNameToNewNames("EditionPatternInstanceParameter", "FlexoConceptInstanceParameter", document); convertOldNameToNewNames("MatchEditionPatternInstance", "MatchFlexoConceptInstance", document); convertOldNameToNewNames("CreateEditionPatternInstanceParameter", "CreateFlexoConceptInstanceParameter", document); // Retrieve Fetch Actions IteratorIterable<? extends Content> fetchElementsIterator = document .getDescendants(new ElementFilter("FetchRequestIterationAction")); List<Element> fetchElements = IteratorUtils.toList(fetchElementsIterator); for (Element fetchElement : fetchElements) { for (Element child : fetchElement.getChildren()) { if (child.getName().equals("AddressedSelectEditionPatternInstance")) { child.setName("FetchRequest_SelectFlexoConceptInstance"); } if (child.getName().equals("AddressedSelectEMFObjectIndividual")) { child.setName("FetchRequest_SelectEMFObjectIndividual"); } if (child.getName().equals("AddressedSelectIndividual")) { child.setName("FetchRequest_SelectIndividual"); } if (child.getName().equals("AddressedSelectExcelCell")) { child.setName("FetchRequest_SelectExcelCell"); } if (child.getName().equals("AddressedSelectExcelRow")) { child.setName("FetchRequest_SelectExcelRow"); } if (child.getName().equals("AddressedSelectExcelSheet")) { child.setName("FetchRequest_SelectExcelSheet"); } if (child.getName().equals("AddressedSelectEditionPatternInstance")) { child.setName("FetchRequest_SelectFlexoConceptInstance"); } } } // Built-in actions convertOldNameToNewNames("DeclareFlexoRole", "DeclareFlexoRole", document); convertOldNameToNewNames("AddEditionPatternInstance", "AddFlexoConceptInstance", document); convertOldNameToNewNames("AddEditionPatternInstanceParameter", "AddFlexoConceptInstanceParameter", document); convertOldNameToNewNames("AddressedSelectEditionPatternInstance", "SelectFlexoConceptInstance", document); convertOldNameToNewNames("AddressedSelectFlexoConceptInstance", "SelectFlexoConceptInstance", document); convertOldNameToNewNames("SelectEditionPatternInstance", "SelectFlexoConceptInstance", document); // Model Slots for (Content content : document.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; if ((element.getParentElement() != null) && (element.getParentElement().getName().equals("DiagramSpecification") || element.getParentElement().getName().equals("VirtualModel"))) { if (element.getName().equals("EMFModelSlot")) { element.setName("ModelSlot_EMFModelSlot"); } else if (element.getName().equals("XMLModelSlot")) { element.setName("ModelSlot_XMLModelSlot"); } else if (element.getName().equals("XSDModelSlot")) { element.setName("ModelSlot_XSDModelSlot"); } else if (element.getName().equals("BasicExcelModelSlot")) { element.setName("ModelSlot_BasicExcelModelSlot"); } else if (element.getName().equals("SemanticsExcelModelSlot")) { element.setName("ModelSlot_SemanticsExcelModelSlot"); } else if (element.getName().equals("BasicPowerpointModelSlot")) { element.setName("ModelSlot_SemanticsPowerpointModelSlot"); } else if (element.getName().equals("OWLModelSlot")) { element.setName("ModelSlot_OWLModelSlot"); } else if (element.getName().equals("FMLRTModelSlot")) { element.setName("ModelSlot_VirtualModelModelSlot"); } } else { if (element.getName().equals("AddressedEMFModelSlot")) { element.setName("EMFModelSlot"); } else if (element.getName().equals("AddressedXMLModelSlot")) { element.setName("XMLModelSlot"); } else if (element.getName().equals("AddressedXSDModelSlot")) { element.setName("XSDModelSlot"); } else if (element.getName().equals("AddressedBasicExcelModelSlot")) { element.setName("BasicExcelModelSlot"); } else if (element.getName().equals("AddressedSemanticsExcelModelSlot")) { element.setName("SemanticsExcelModelSlot"); } else if (element.getName().equals("AddressedBasicPowerpointModelSlot")) { element.setName("BasicPowerpointModelSlot"); } else if (element.getName().equals("AddressedSemanticsPowerpointModelSlot")) { element.setName("SemanticsPowerpointModelSlot"); } else if (element.getName().equals("AddressedOWLModelSlot")) { element.setName("OWLModelSlot"); } else if (element.getName().equals("AddressedDiagramModelSlot")) { element.setName("TypedDiagramModelSlot"); } else if (element.getName().equals("AddressedVirtualModelModelSlot")) { element.setName("FMLRTModelSlot"); } } } } // Palettes/ExampleDiagrams // Retrieve Connector GRs IteratorIterable<? extends Content> connectorGRElementsIterator = document .getDescendants(new ElementFilter("ConnectorGraphicalRepresentation")); List<Element> connectorGRElements = IteratorUtils.toList(connectorGRElementsIterator); for (Element connectorGRElement : connectorGRElements) { Element grSpec = null; if (connectorGRElement.getChild("RectPolylinConnector") != null) { grSpec = connectorGRElement.getChild("RectPolylinConnector"); } else if (connectorGRElement.getChild("LineConnector") != null) { grSpec = connectorGRElement.getChild("LineConnector"); } else if (connectorGRElement.getChild("CurvedPolylinConnector") != null) { grSpec = connectorGRElement.getChild("CurvedPolylinConnector"); } else if (connectorGRElement.getChild("ArcConnector") != null) { grSpec = connectorGRElement.getChild("ArcConnector"); } if (connectorGRElement.getAttribute("startSymbol") != null) { Attribute startSymbol = new Attribute("startSymbol", connectorGRElement.getAttributeValue("startSymbol")); grSpec.getAttributes().add(startSymbol); connectorGRElement.removeAttribute("startSymbol"); } if (connectorGRElement.getAttribute("endSymbol") != null) { Attribute endSymbol = new Attribute("endSymbol", connectorGRElement.getAttributeValue("endSymbol")); grSpec.getAttributes().add(endSymbol); connectorGRElement.removeAttribute("endSymbol"); } if (connectorGRElement.getAttribute("middleSymbol") != null) { Attribute middleSymbol = new Attribute("middleSymbol", connectorGRElement.getAttributeValue("middleSymbol")); grSpec.getAttributes().add(middleSymbol); connectorGRElement.removeAttribute("middleSymbol"); } if (connectorGRElement.getAttribute("startSymbolSize") != null) { Attribute startSymbolSize = new Attribute("startSymbolSize", connectorGRElement.getAttributeValue("startSymbolSize")); grSpec.getAttributes().add(startSymbolSize); connectorGRElement.removeAttribute("startSymbolSize"); } if (connectorGRElement.getAttribute("endSymbolSize") != null) { Attribute endSymbolSize = new Attribute("endSymbolSize", connectorGRElement.getAttributeValue("endSymbolSize")); grSpec.getAttributes().add(endSymbolSize); connectorGRElement.removeAttribute("endSymbolSize"); } if (connectorGRElement.getAttribute("middleSymbolSize") != null) { Attribute middleSymbolSize = new Attribute("middleSymbolSize", connectorGRElement.getAttributeValue("middleSymbolSize")); grSpec.getAttributes().add(middleSymbolSize); connectorGRElement.removeAttribute("middleSymbolSize"); } if (connectorGRElement.getAttribute("relativeMiddleSymbolLocation") != null) { Attribute relativeMiddleSymbolLocation = new Attribute("relativeMiddleSymbolLocation", connectorGRElement.getAttributeValue("relativeMiddleSymbolLocation")); grSpec.getAttributes().add(relativeMiddleSymbolLocation); connectorGRElement.removeAttribute("relativeMiddleSymbolLocation"); } } convertOldNameToNewNames("Palette", "DiagramPalette", document); convertOldNameToNewNames("PaletteElement", "DiagramPaletteElement", document); convertOldNameToNewNames("Shema", "Diagram", document); convertOldNameToNewNames("ContainedShape", "Shape", document); convertOldNameToNewNames("ContainedConnector", "Connector", document); convertOldNameToNewNames("FromShape", "StartShape", document); convertOldNameToNewNames("ToShape", "EndShape", document); convertOldNameToNewNames("Border", "ShapeBorder", document); convertOldNameToNewNames("LineConnector", "LineConnectorSpecification", document); convertOldNameToNewNames("CurvedPolylinConnector", "CurvedPolylinConnectorSpecification", document); convertOldNameToNewNames("RectPolylinConnector", "RectPolylinConnectorSpecification", document); removeNamedElements(document, "PrimaryConceptOWLIndividualPatternRole"); removeNamedElements(document, "StartShapeGraphicalRepresentation"); removeNamedElements(document, "EndShapeGraphicalRepresentation"); removeNamedElements(document, "ArtifactFromShapeGraphicalRepresentation"); removeNamedElements(document, "ArtifactToShapeGraphicalRepresentation"); removeNamedElements(document, "PrimaryRepresentationConnectorPatternRole"); removeNamedElements(document, "PrimaryRepresentationShapePatternRole"); removeNamedElements(document, "PrimaryConceptObjectPropertyStatementPatternRole"); removeNamedElements(document, "ToShapePatternRole"); removeNamedElements(document, "StartShapeGraphicalRepresentation"); removeNamedElements(document, "EndShapeGraphicalRepresentation"); // Change all "this" for (Content content : document.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; for (Attribute attribute : element.getAttributes()) { if (attribute.getValue().startsWith("this")) { if (element.getName().equals("ModelSlot_VirtualModelModelSlot")) { attribute.setValue(attribute.getValue().replace("this", "virtualModelInstance")); } if (element.getName().equals("FMLRTModelSlot")) { attribute.setValue(attribute.getValue().replace("this", "virtualModelInstance")); } if (attribute.getName().equals("virtualModelInstance")) { attribute.setValue(attribute.getValue().replace("this", "virtualModelInstance")); } else { attribute.setValue(attribute.getValue().replace("this", "flexoBehaviourInstance")); } } } } } }
From source file:org.openflexo.foundation.fml.rm.ViewPointResourceImpl.java
License:Open Source License
private static void convertOldNameToNewNames(String oldName, String newName, Document document) { for (Content content : document.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; if (element.getName().equals(oldName)) { element.setName(newName); }/* www .j ava2 s .c o m*/ } } }
From source file:org.openflexo.foundation.viewpoint.rm.ViewPointResourceImpl.java
License:Open Source License
public static void convertViewPoint(ViewPointResource viewPointResource) { File viewPointDirectory = ResourceLocator.retrieveResourceAsFile(viewPointResource.getDirectory()); File xmlFile = (File) viewPointResource.getFlexoIODelegate().getSerializationArtefact();//getFile(); logger.info("Converting " + viewPointDirectory.getAbsolutePath()); File diagramSpecificationDir = new File(viewPointDirectory, "DiagramSpecification"); diagramSpecificationDir.mkdir();/* ww w. j ava 2s . com*/ logger.fine("Creating directory " + diagramSpecificationDir.getAbsolutePath()); try { Document viewPointDocument = XMLUtils.readXMLFile(xmlFile); Document diagramSpecificationDocument = XMLUtils.readXMLFile(xmlFile); for (File f : viewPointDirectory.listFiles()) { if (!f.equals(xmlFile) && !f.equals(diagramSpecificationDir) && !f.getName().endsWith("~")) { if (f.getName().endsWith(".shema")) { try { File renamedExampleDiagramFile = new File(f.getParentFile(), f.getName().substring(0, f.getName().length() - 6) + ".diagram"); FileUtils.rename(f, renamedExampleDiagramFile); f = renamedExampleDiagramFile; } catch (IOException e) { e.printStackTrace(); } } File destFile = new File(diagramSpecificationDir, f.getName()); FileUtils.rename(f, destFile); logger.fine("Moving file " + f.getAbsolutePath() + " to " + destFile.getAbsolutePath()); } if (f.getName().endsWith("~")) { f.delete(); } } Element diagramSpecification = XMLUtils.getElement(diagramSpecificationDocument, "ViewPoint"); diagramSpecification.setName("DiagramSpecification"); FileOutputStream fos = new FileOutputStream( new File(diagramSpecificationDir, "DiagramSpecification.xml")); Format prettyFormat = Format.getPrettyFormat(); prettyFormat.setLineSeparator(LineSeparator.SYSTEM); XMLOutputter outputter = new XMLOutputter(prettyFormat); try { outputter.output(diagramSpecificationDocument, fos); } catch (IOException e) { e.printStackTrace(); } fos.flush(); fos.close(); } catch (JDOMException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } ((ViewPointResourceImpl) viewPointResource).exploreVirtualModels(viewPointResource.getDirectory()); }
From source file:org.openflexo.foundation.viewpoint.rm.ViewPointResourceImpl.java
License:Open Source License
private static void convertDiagramSpecification16ToVirtualModel17(File file, Document diagram, List<File> oldPaletteFiles, List<File> oldExampleDiagramFiles, ViewPointResource viewPointResource) { // Create the diagram specification and a virtual model with a diagram typed model slot referencing this diagram specification final String ADDRESSED_DIAGRAM_MODEL_SLOT = "AddressedDiagramModelSlot"; final String MODELSLOT_VIRTUAL_MODEL_MODEL_SLOT = "ModelSlot_VirtualModelModelSlot"; final String MODELSLOT_TYPED_DIAGRAM_MODEL_SLOT = "ModelSlot_TypedDiagramModelSlot"; try {//from w w w .jav a 2 s . co m String diagramName = file.getName().replace(".xml", ""); // Create a folder that contains the diagram specification File diagramSpecificationFolder = new File( file.getParentFile() + "/" + diagramName + ".diagramspecification"); diagramSpecificationFolder.mkdir(); // Retrieve diagram drop schemes Iterator<Element> dropSchemeElements = diagram.getDescendants(new ElementFilter("DropScheme")); List<Element> dropSchemes = IteratorUtils.toList(dropSchemeElements); // Retrieve Diagram Model slots references Iterator<? extends Content> thisModelSlotsIterator = diagram.getDescendants( new ElementFilter("DiagramModelSlot").or(new ElementFilter(ADDRESSED_DIAGRAM_MODEL_SLOT))); List<Element> thisModelSlots = IteratorUtils.toList(thisModelSlotsIterator); // Retrieve the DiagramModelSlot (this), and transform it to a virtual model slot with a virtual model uri int thisID = 0; String newThisUri = viewPointResource.getURI() + "/" + diagramName; String diagramSpecificationURI = newThisUri + "/" + diagramName + ".diagramspecification"; Element typedDiagramModelSlot = null; boolean foundThis = false; for (Element thisMs : thisModelSlots) { // Retriev the ID and URI of this DiagramModelSlot if (thisMs.getAttribute("name") != null && thisMs.getAttributeValue("name").equals("this") && !foundThis) { // Store its ID and its URI thisID = thisMs.getAttribute("id").getIntValue(); if (thisMs.getAttributeValue("virtualModelURI") != null) { newThisUri = thisMs.getAttributeValue("virtualModelURI"); thisMs.removeAttribute("virtualModelURI"); thisMs.removeAttribute("name"); thisMs.getAttribute("id").setName("idref"); thisMs.setAttribute("idref", Integer.toString(thisID)); } // Replace by a Typed model slot typedDiagramModelSlot = new Element(MODELSLOT_TYPED_DIAGRAM_MODEL_SLOT); typedDiagramModelSlot.setAttribute("metaModelURI", diagramSpecificationURI); typedDiagramModelSlot.setAttribute("name", "typedDiagramModelSlot"); typedDiagramModelSlot.setAttribute("id", Integer.toString(computeNewID(diagram))); foundThis = true; } } // Replace the Diagram Model Slot by a Virtual Model Model slot for (Element thisMs : thisModelSlots) { if (hasSameID(thisMs, thisID) && thisMs.getName().equals("DiagramModelSlot")) { thisMs.setName("VirtualModelModelSlot"); thisMs.getAttributes().add(new Attribute("virtualModelURI", newThisUri)); thisMs.getAttributes().add(new Attribute("name", "virtualModelInstance")); thisMs.getAttributes().add(new Attribute("id", Integer.toString(thisID))); thisMs.removeAttribute("idref"); } } // Update ids for all model slots Iterator<? extends Content> diagramModelSlotsIterator = diagram.getDescendants( new ElementFilter("DiagramModelSlot").or(new ElementFilter(ADDRESSED_DIAGRAM_MODEL_SLOT))); List<Element> thisDiagramModelSlots = IteratorUtils.toList(diagramModelSlotsIterator); for (Element diagramMs : thisDiagramModelSlots) { if (diagramMs.getAttribute("id") != null && typedDiagramModelSlot != null) { diagramMs.setAttribute("id", typedDiagramModelSlot.getAttributeValue("id")); } if (diagramMs.getAttribute("idref") != null) { // Change to TypedDiagramModelSlot if (diagramMs.getParentElement().getName().equals("AddShape") || diagramMs.getParentElement().getName().equals("AddConnector") || diagramMs.getParentElement().getName().equals("AddDiagram") || diagramMs.getParentElement().getName().equals("ContainedShapePatternRole") || diagramMs.getParentElement().getName().equals("ContainedConnectorPatternRole") || diagramMs.getParentElement().getName().equals("ContainedDiagramPatternRole")) { if (typedDiagramModelSlot.getAttributeValue("id") != null) { diagramMs.setAttribute("idref", typedDiagramModelSlot.getAttributeValue("id")); diagramMs.setName("TypedDiagramModelSlot"); } } else { diagramMs.setName(MODELSLOT_VIRTUAL_MODEL_MODEL_SLOT); } } } for (Content content : diagram.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; if (element.getName().equals("AddShape") || element.getName().equals("AddConnector") || element.getName().equals("AddDiagram")) { if (element.getChild("TypedDiagramModelSlot") == null && element.getChild("AddressedDiagramModelSlot") == null) { Element adressedMsElement = new Element("TypedDiagramModelSlot"); Attribute newIdRefAttribute = new Attribute("idref", typedDiagramModelSlot.getAttributeValue("id")); adressedMsElement.getAttributes().add(newIdRefAttribute); element.addContent(adressedMsElement); } } } } // Update DiagramSpecification URI for (Content content : diagram.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; if (element.getAttribute("diagramSpecificationURI") != null) { String oldDiagramSpecificationUri = element.getAttributeValue("diagramSpecificationURI"); String diagramSpecificationName = oldDiagramSpecificationUri .substring(oldDiagramSpecificationUri.lastIndexOf("/")); String newDiagramSpecificationUri = oldDiagramSpecificationUri + diagramSpecificationName + ".diagramspecification"; element.getAttribute("diagramSpecificationURI").setValue(newDiagramSpecificationUri); } } } // Change all the "diagram" binding with "this", and "toplevel" with typedDiagramModelSlot.topLevel" in case of not // DropSchemeAction for (Content content : diagram.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; for (Attribute attribute : element.getAttributes()) { if (attribute.getValue().startsWith("diagram")) { attribute.setValue(attribute.getValue().replace("diagram", "this")); } if (attribute.getValue().startsWith("topLevel")) { boolean diagramScheme = false; Element parentElement = element.getParentElement(); while (parentElement != null) { if (parentElement.getName().equals("DropScheme") || parentElement.getName().equals("LinkScheme")) { diagramScheme = true; } parentElement = parentElement.getParentElement(); } if (!diagramScheme) { attribute.setValue(attribute.getValue().replace("topLevel", "virtualModelInstance.typedDiagramModelSlot")); } } } } } // Create the diagram specificaion xml file File diagramSpecificationFile = new File(diagramSpecificationFolder, file.getName()); Document diagramSpecification = new Document(); Element rootElement = new Element("DiagramSpecification"); Attribute name = new Attribute("name", diagramName); Attribute diagramSpecificationURIAttribute = new Attribute("uri", diagramSpecificationURI); diagramSpecification.addContent(rootElement); rootElement.getAttributes().add(name); rootElement.getAttributes().add(diagramSpecificationURIAttribute); XMLUtils.saveXMLFile(diagramSpecification, diagramSpecificationFile); // Copy the palette files inside diagram specification repository ArrayList<File> newPaletteFiles = new ArrayList<File>(); for (File paletteFile : oldPaletteFiles) { File newFile = new File(diagramSpecificationFolder + "/" + paletteFile.getName()); FileUtils.rename(paletteFile, newFile); newPaletteFiles.add(newFile); Document palette = XMLUtils.readXMLFile(newFile); Attribute diagramSpecUri = new Attribute("diagramSpecificationURI", diagramSpecificationURI); palette.getRootElement().getAttributes().add(diagramSpecUri); convertNames16ToNames17(palette); XMLUtils.saveXMLFile(palette, newFile); } // Copy the example diagram files inside diagram specification repository ArrayList<File> newExampleDiagramFiles = new ArrayList<File>(); for (File exampleDiagramFile : oldExampleDiagramFiles) { File newFile = new File(diagramSpecificationFolder + "/" + exampleDiagramFile.getName()); FileUtils.rename(exampleDiagramFile, newFile); newExampleDiagramFiles.add(newFile); Document exampleDiagram = XMLUtils.readXMLFile(newFile); exampleDiagram.getRootElement().setAttribute("uri", diagramSpecificationURI + "/" + exampleDiagram.getRootElement().getAttributeValue("name")); Attribute diagramSpecUri = new Attribute("diagramSpecificationURI", diagramSpecificationURI); exampleDiagram.getRootElement().getAttributes().add(diagramSpecUri); exampleDiagram.getRootElement().setAttribute("uri", diagramSpecificationURI + "/" + exampleDiagram.getRootElement().getAttributeValue("name")); convertNames16ToNames17(exampleDiagram); XMLUtils.saveXMLFile(exampleDiagram, newFile); } // Update the diagram palette element bindings ArrayList<Element> paletteElementBindings = new ArrayList<Element>(); for (File paletteFile : newPaletteFiles) { Document palette = XMLUtils.readXMLFile(paletteFile); String paletteUri = diagramSpecificationURI + "/" + palette.getRootElement().getAttribute("name").getValue() + ".palette"; Iterator<? extends Content> paletteElements = palette .getDescendants(new ElementFilter("DiagramPaletteElement")); while (paletteElements.hasNext()) { Element paletteElement = (Element) paletteElements.next(); Element binding = createPaletteElementBinding(paletteElement, paletteUri, dropSchemes); if (binding != null) { paletteElementBindings.add(binding); } } XMLUtils.saveXMLFile(palette, paletteFile); } // Add the Palette Element Bindings to the TypedDiagramModelSlot if (!paletteElementBindings.isEmpty()) { typedDiagramModelSlot.addContent(paletteElementBindings); } if (typedDiagramModelSlot != null) { diagram.getRootElement().addContent(typedDiagramModelSlot); } // Update names convertNames16ToNames17(diagram); convertOldNameToNewNames("DiagramSpecification", "VirtualModel", diagram); // Save the files XMLUtils.saveXMLFile(diagram, file); } catch (JDOMException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.openflexo.foundation.viewpoint.rm.ViewPointResourceImpl.java
License:Open Source License
private static void convertNames16ToNames17(Document document) { // Convert common properties addProperty("userID", "FLX", document, null); // Edition Patterns // Edition patterns name convertOldNameToNewNames("EditionPattern", "FlexoConcept", document); // Parent pattern role is no more an attribute but an element IteratorIterable<? extends Content> fcElementsIterator = document .getDescendants(new ElementFilter("FlexoConcept")); List<Element> fcElements = IteratorUtils.toList(fcElementsIterator); for (Element fc : fcElements) { if (fc.getAttribute("parentEditionPattern") != null) { Element parentEp = new Element("ParentFlexoConcept"); Attribute parentIdRef = new Attribute("idref", getFlexoConceptID(document, fc.getAttributeValue("parentEditionPattern"))); parentEp.getAttributes().add(parentIdRef); fc.removeAttribute("parentEditionPattern"); fc.addContent(parentEp);//from w w w . j av a 2s.co m } } // Pattern Roles // Pattern roles properties changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "ContainedEditionPatternInstancePatternRole"); changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "AddressedSelectEditionPatternInstance"); changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "SelectEditionPatternInstance"); changePropertyName("editionPatternTypeURI", "flexoConceptTypeURI", document, "EditionPatternInstanceParameter"); changePropertyName("paletteElementID", "paletteElementId", document, "FMLDiagramPaletteElementBinding"); changePropertyName("editionPattern", "flexoConcept", document, "PaletteElement"); removeProperties("patternRole", document); removeProperty("className", document, "DrawingGraphicalRepresentation"); removeProperty("className", document, "ShapeGraphicalRepresentation"); removeProperty("className", document, "ConnectorGraphicalRepresentation"); // Pattern roles name convertOldNameToNewNames("ContainedEditionPatternInstancePatternRole", "FlexoConceptInstanceRole", document); convertOldNameToNewNames("EditionPatternInstancePatternRole", "FlexoConceptInstanceRole", document); convertOldNameToNewNames("ContainedShapePatternRole", "ShapeRole", document); convertOldNameToNewNames("ShapePatternRole", "ShapeRole", document); convertOldNameToNewNames("ContextShapePatternRole", "ShapeRole", document); convertOldNameToNewNames("ParentShapePatternRole", "ParentShapeRole", document); convertOldNameToNewNames("ContainedEMFObjectIndividualPatternRole", "EMFObjectIndividualRole", document); convertOldNameToNewNames("EMFObjectIndividualPatternRole", "EMFObjectIndividualRole", document); convertOldNameToNewNames("ContainedConnectorPatternRole", "ConnectorRole", document); convertOldNameToNewNames("ConnectorPatternRole", "ConnectorRole", document); convertOldNameToNewNames("ContainedOWLIndividualPatternRole", "OWLIndividualRole", document); convertOldNameToNewNames("OWLIndividualPatternRole", "OWLIndividualRole", document); convertOldNameToNewNames("ContainedObjectPropertyStatementPatternRole", "ObjectPropertyStatementRole", document); convertOldNameToNewNames("ObjectPropertyStatementPatternRole", "ObjectPropertyStatementRole", document); convertOldNameToNewNames("ContainedDataPropertyStatementPatternRole", "DataPropertyStatementRole", document); convertOldNameToNewNames("DataPropertyStatementPatternRole", "DataPropertyStatementRole", document); convertOldNameToNewNames("ContainedExcelCellPatternRole", "ExcelCellRole", document); convertOldNameToNewNames("ExcelCellPatternRole", "ExcelCellRole", document); convertOldNameToNewNames("ContainedExcelSheetPatternRole", "ExcelSheetRole", document); convertOldNameToNewNames("ExcelSheetPatternRole", "ExcelSheetRole", document); convertOldNameToNewNames("ContainedExcelRowPatternRole", "ExcelRowRole", document); convertOldNameToNewNames("ExcelRowPatternRole", "ExcelRowRole", document); convertOldNameToNewNames("ContainedDiagramPatternRole", "DiagramRole", document); convertOldNameToNewNames("DiagramPatternRole", "DiagramRole", document); convertOldNameToNewNames("ContainedXMLIndividualPatternRole", "XMLIndividualRole", document); convertOldNameToNewNames("XMLIndividualPatternRole", "XMLIndividualRole", document); convertOldNameToNewNames("ContainedXSIndividualPatternRole", "XSIndividualRole", document); convertOldNameToNewNames("XSIndividualPatternRole", "XSIndividualRole", document); convertOldNameToNewNames("ContainedXSClassPatternRole", "XSClassRole", document); convertOldNameToNewNames("XSClassPatternRole", "XSClassRole", document); // Actions convertOldNameToNewNames("EditionPatternInstanceParameter", "FlexoConceptInstanceParameter", document); convertOldNameToNewNames("MatchEditionPatternInstance", "MatchFlexoConceptInstance", document); convertOldNameToNewNames("CreateEditionPatternInstanceParameter", "CreateFlexoConceptInstanceParameter", document); // Retrieve Fetch Actions IteratorIterable<? extends Content> fetchElementsIterator = document .getDescendants(new ElementFilter("FetchRequestIterationAction")); List<Element> fetchElements = IteratorUtils.toList(fetchElementsIterator); for (Element fetchElement : fetchElements) { for (Element child : fetchElement.getChildren()) { if (child.getName().equals("AddressedSelectEditionPatternInstance")) { child.setName("FetchRequest_SelectFlexoConceptInstance"); } if (child.getName().equals("AddressedSelectEMFObjectIndividual")) { child.setName("FetchRequest_SelectEMFObjectIndividual"); } if (child.getName().equals("AddressedSelectIndividual")) { child.setName("FetchRequest_SelectIndividual"); } if (child.getName().equals("AddressedSelectExcelCell")) { child.setName("FetchRequest_SelectExcelCell"); } if (child.getName().equals("AddressedSelectExcelRow")) { child.setName("FetchRequest_SelectExcelRow"); } if (child.getName().equals("AddressedSelectExcelSheet")) { child.setName("FetchRequest_SelectExcelSheet"); } if (child.getName().equals("AddressedSelectEditionPatternInstance")) { child.setName("FetchRequest_SelectFlexoConceptInstance"); } } } // Built-in actions convertOldNameToNewNames("DeclarePatternRole", "DeclareFlexoRole", document); convertOldNameToNewNames("AddEditionPatternInstance", "AddFlexoConceptInstance", document); convertOldNameToNewNames("AddEditionPatternInstanceParameter", "AddFlexoConceptInstanceParameter", document); convertOldNameToNewNames("AddressedSelectEditionPatternInstance", "SelectFlexoConceptInstance", document); convertOldNameToNewNames("AddressedSelectFlexoConceptInstance", "SelectFlexoConceptInstance", document); convertOldNameToNewNames("SelectEditionPatternInstance", "SelectFlexoConceptInstance", document); // Model Slots for (Content content : document.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; if ((element.getParentElement() != null) && (element.getParentElement().getName().equals("DiagramSpecification") || element.getParentElement().getName().equals("VirtualModel"))) { if (element.getName().equals("EMFModelSlot")) { element.setName("ModelSlot_EMFModelSlot"); } else if (element.getName().equals("XMLModelSlot")) { element.setName("ModelSlot_XMLModelSlot"); } else if (element.getName().equals("XSDModelSlot")) { element.setName("ModelSlot_XSDModelSlot"); } else if (element.getName().equals("BasicExcelModelSlot")) { element.setName("ModelSlot_BasicExcelModelSlot"); } else if (element.getName().equals("SemanticsExcelModelSlot")) { element.setName("ModelSlot_SemanticsExcelModelSlot"); } else if (element.getName().equals("BasicPowerpointModelSlot")) { element.setName("ModelSlot_SemanticsPowerpointModelSlot"); } else if (element.getName().equals("OWLModelSlot")) { element.setName("ModelSlot_OWLModelSlot"); } else if (element.getName().equals("VirtualModelModelSlot")) { element.setName("ModelSlot_VirtualModelModelSlot"); } } else { if (element.getName().equals("AddressedEMFModelSlot")) { element.setName("EMFModelSlot"); } else if (element.getName().equals("AddressedXMLModelSlot")) { element.setName("XMLModelSlot"); } else if (element.getName().equals("AddressedXSDModelSlot")) { element.setName("XSDModelSlot"); } else if (element.getName().equals("AddressedBasicExcelModelSlot")) { element.setName("BasicExcelModelSlot"); } else if (element.getName().equals("AddressedSemanticsExcelModelSlot")) { element.setName("SemanticsExcelModelSlot"); } else if (element.getName().equals("AddressedBasicPowerpointModelSlot")) { element.setName("BasicPowerpointModelSlot"); } else if (element.getName().equals("AddressedSemanticsPowerpointModelSlot")) { element.setName("SemanticsPowerpointModelSlot"); } else if (element.getName().equals("AddressedOWLModelSlot")) { element.setName("OWLModelSlot"); } else if (element.getName().equals("AddressedDiagramModelSlot")) { element.setName("TypedDiagramModelSlot"); } else if (element.getName().equals("AddressedVirtualModelModelSlot")) { element.setName("VirtualModelModelSlot"); } } } } // Palettes/ExampleDiagrams // Retrieve Connector GRs IteratorIterable<? extends Content> connectorGRElementsIterator = document .getDescendants(new ElementFilter("ConnectorGraphicalRepresentation")); List<Element> connectorGRElements = IteratorUtils.toList(connectorGRElementsIterator); for (Element connectorGRElement : connectorGRElements) { Element grSpec = null; if (connectorGRElement.getChild("RectPolylinConnector") != null) { grSpec = connectorGRElement.getChild("RectPolylinConnector"); } else if (connectorGRElement.getChild("LineConnector") != null) { grSpec = connectorGRElement.getChild("LineConnector"); } else if (connectorGRElement.getChild("CurvedPolylinConnector") != null) { grSpec = connectorGRElement.getChild("CurvedPolylinConnector"); } else if (connectorGRElement.getChild("ArcConnector") != null) { grSpec = connectorGRElement.getChild("ArcConnector"); } if (connectorGRElement.getAttribute("startSymbol") != null) { Attribute startSymbol = new Attribute("startSymbol", connectorGRElement.getAttributeValue("startSymbol")); grSpec.getAttributes().add(startSymbol); connectorGRElement.removeAttribute("startSymbol"); } if (connectorGRElement.getAttribute("endSymbol") != null) { Attribute endSymbol = new Attribute("endSymbol", connectorGRElement.getAttributeValue("endSymbol")); grSpec.getAttributes().add(endSymbol); connectorGRElement.removeAttribute("endSymbol"); } if (connectorGRElement.getAttribute("middleSymbol") != null) { Attribute middleSymbol = new Attribute("middleSymbol", connectorGRElement.getAttributeValue("middleSymbol")); grSpec.getAttributes().add(middleSymbol); connectorGRElement.removeAttribute("middleSymbol"); } if (connectorGRElement.getAttribute("startSymbolSize") != null) { Attribute startSymbolSize = new Attribute("startSymbolSize", connectorGRElement.getAttributeValue("startSymbolSize")); grSpec.getAttributes().add(startSymbolSize); connectorGRElement.removeAttribute("startSymbolSize"); } if (connectorGRElement.getAttribute("endSymbolSize") != null) { Attribute endSymbolSize = new Attribute("endSymbolSize", connectorGRElement.getAttributeValue("endSymbolSize")); grSpec.getAttributes().add(endSymbolSize); connectorGRElement.removeAttribute("endSymbolSize"); } if (connectorGRElement.getAttribute("middleSymbolSize") != null) { Attribute middleSymbolSize = new Attribute("middleSymbolSize", connectorGRElement.getAttributeValue("middleSymbolSize")); grSpec.getAttributes().add(middleSymbolSize); connectorGRElement.removeAttribute("middleSymbolSize"); } if (connectorGRElement.getAttribute("relativeMiddleSymbolLocation") != null) { Attribute relativeMiddleSymbolLocation = new Attribute("relativeMiddleSymbolLocation", connectorGRElement.getAttributeValue("relativeMiddleSymbolLocation")); grSpec.getAttributes().add(relativeMiddleSymbolLocation); connectorGRElement.removeAttribute("relativeMiddleSymbolLocation"); } } convertOldNameToNewNames("Palette", "DiagramPalette", document); convertOldNameToNewNames("PaletteElement", "DiagramPaletteElement", document); convertOldNameToNewNames("Shema", "Diagram", document); convertOldNameToNewNames("ContainedShape", "Shape", document); convertOldNameToNewNames("ContainedConnector", "Connector", document); convertOldNameToNewNames("FromShape", "StartShape", document); convertOldNameToNewNames("ToShape", "EndShape", document); convertOldNameToNewNames("Border", "ShapeBorder", document); convertOldNameToNewNames("LineConnector", "LineConnectorSpecification", document); convertOldNameToNewNames("CurvedPolylinConnector", "CurvedPolylinConnectorSpecification", document); convertOldNameToNewNames("RectPolylinConnector", "RectPolylinConnectorSpecification", document); removeNamedElements(document, "PrimaryConceptOWLIndividualPatternRole"); removeNamedElements(document, "StartShapeGraphicalRepresentation"); removeNamedElements(document, "EndShapeGraphicalRepresentation"); removeNamedElements(document, "ArtifactFromShapeGraphicalRepresentation"); removeNamedElements(document, "ArtifactToShapeGraphicalRepresentation"); removeNamedElements(document, "PrimaryRepresentationConnectorPatternRole"); removeNamedElements(document, "PrimaryRepresentationShapePatternRole"); removeNamedElements(document, "PrimaryConceptObjectPropertyStatementPatternRole"); removeNamedElements(document, "ToShapePatternRole"); removeNamedElements(document, "StartShapeGraphicalRepresentation"); removeNamedElements(document, "EndShapeGraphicalRepresentation"); // Change all "this" for (Content content : document.getDescendants()) { if (content instanceof Element) { Element element = (Element) content; for (Attribute attribute : element.getAttributes()) { if (attribute.getValue().startsWith("this")) { if (element.getName().equals("ModelSlot_VirtualModelModelSlot")) { attribute.setValue(attribute.getValue().replace("this", "virtualModelInstance")); } if (element.getName().equals("VirtualModelModelSlot")) { attribute.setValue(attribute.getValue().replace("this", "virtualModelInstance")); } if (attribute.getName().equals("virtualModelInstance")) { attribute.setValue(attribute.getValue().replace("this", "virtualModelInstance")); } else { attribute.setValue(attribute.getValue().replace("this", "flexoBehaviourInstance")); } } } } } }
From source file:org.xcri.util.lax.Lax.java
License:Open Source License
/** * Get specified child elements as generously as possible * //from w w w .j ava2 s .co m * @param parentElement * @param childElementName * @param preferredNamespace * @return * @throws WrongNamespaceException * @throws ElementNameFormattingException */ @SuppressWarnings("unchecked") private static List<Element> getAllChildren(Element parentElement, String childElementName, Namespace preferredNamespace) throws LaxException { boolean misspelled = false; boolean wrongNamespace = false; LinkedList<Element> list = new LinkedList<Element>(); List<Element> allChildren = parentElement.getChildren(); Iterator<Element> iter = allChildren.iterator(); while (iter.hasNext()) { Element nextElement = iter.next(); if (nextElement.getName().equals(childElementName)) { // // Add elements that use the wrong namespace, but correct it // here so when its exported its correct // list.add(nextElement); if (nextElement.getNamespace() != preferredNamespace) { nextElement.setNamespace(preferredNamespace); wrongNamespace = true; } } else if (nextElement.getName().compareToIgnoreCase(childElementName) == 0) { // // Add elements that use incorrect case, but correct it here // so when its exported its done correctly // nextElement.setName(childElementName); list.add(nextElement); misspelled = true; } } if (misspelled || wrongNamespace) { LaxException ex = new LaxException(list); ex.setMisspelled(misspelled); ex.setIncorrectNamespace(wrongNamespace); throw ex; } return list; }