List of usage examples for org.eclipse.jdt.core.jdom IDOMNode remove
public void remove();
From source file:ac.at.tuwien.dsg.uml2java.stereotype.export.ClassWithStereotypeExportRule.java
License:Open Source License
protected Object createTarget(ITransformContext context) { /**/*from w w w .j av a 2s.c o m*/ * Retrieve the target DOM generated by the UML2Java standard transformation */ DOMNode target = (DOMNode) context.getTarget(); /** * Create a DOMFactory to be used in instantiating new DOM elements */ DOMFactory domFactory = new DOMFactory(); /** * Get the transformation UML Class */ Class umlCls = (Class) context.getSource(); /** * We want to add something as default imports. Mainly org.eclipse.uml2.uml.* but maybe something more in the future. * To do that, as in this rule the Class java file is already partially generated by super ClassRule, we get its parent (i.e., the CompilationUnit), * remove all parent children (actually just one, the generated class), add all import statements we need, and add the removed children back. * * Otherwise the imports are added after the end of the class, which triggers compilation errors. */ List<IDOMNode> children = new ArrayList<>(); IDOMNode parent = target.getParent(); Enumeration enumeration = parent.getChildren(); //remove all parent children while (enumeration.hasMoreElements()) { IDOMNode node = (IDOMNode) enumeration.nextElement(); children.add(node); node.remove(); } //add all import statements for (String importStatement : defaultImports) { IDOMImport importEclipseUML = domFactory.createImport(); importEclipseUML.setName(importStatement); parent.addChild(importEclipseUML); } //add children back for (IDOMNode child : children) { parent.addChild(child); } /** * We go through all applied stereotypes and for each we go through each attribute, and create a class field. */ for (Stereotype stereotype : umlCls.getAppliedStereotypes()) { //get all properties for (Property attribute : stereotype.getAllAttributes()) { String name = attribute.getName(); Type type = attribute.getType(); String typeName = type.getName(); org.eclipse.uml2.uml.Package packageType = type.getPackage(); /** * Create Java field/class variable for each attribute */ Namespace namespace = attribute.getNamespace(); //create import statement for each added field // IDOMImport importStatement = domFactory.createImport(); // importStatement.setName(packageType+"."+typeName); // // target.addChild(importStatement); IDOMField field = domFactory.createField(); field.setName(name); field.setFlags(Flags.AccPrivate); /** * In case the model is incomplete, we add the field with Object as type */ if (typeName == null) { field.setType("Object"); //add in the generated code a comment explaining why field type is Object field.setComment("/*Type for attribute \"" + name + "\" on stereotype \"" + stereotype + "\" is null */"); System.err.println( "Type for attribute \"" + name + "\" on stereotype \"" + stereotype + "\" is null"); } else { field.setType(typeName); } target.addChild(field); /** * Add setter/getter for the added field */ IDOMMethod setter = domFactory.createMethod(); /** * Capitalize the first letter of the variable name so we have nice camel-case */ setter.setName("set" + name.substring(0, 1).toUpperCase() + name.substring(1)); setter.setFlags(Flags.AccPublic); setter.setReturnType("void"); setter.addParameter(typeName, name); setter.setBody("{ \n this." + name + "=" + name + ";\n }"); target.addChild(setter); IDOMMethod getter = domFactory.createMethod(); getter.setName("get" + name.substring(0, 1).toUpperCase() + name.substring(1)); getter.setFlags(Flags.AccPublic); getter.setReturnType(typeName); getter.setBody("{ \n return this." + name + ";\n }"); target.addChild(getter); } } return target; }
From source file:org.eclipse.emf.codegen.jmerge.JMerger.java
License:Open Source License
protected void applySweepRules(IDOMNode targetNode) { for (Iterator sweepRules = jControlModel.getSweepRules().iterator(); sweepRules.hasNext();) { JControlModel.SweepRule sweepRule = (JControlModel.SweepRule) sweepRules.next(); if (sweepRule.getSelector() == IDOMImport.class && targetNode instanceof IDOMImport) { if (sweepRule.getMarkup().matcher(targetNode.getName()).find()) { targetNode.remove(); break; }// w ww . ja va 2 s . co m } else if (targetPatternDictionary.isMarkedUp(sweepRule.getMarkup(), targetNode) && sweepRule.getSelector().isInstance(targetNode)) { targetNode.remove(); break; } } }
From source file:org.eclipse.emf.codegen.jmerge.JMerger.java
License:Open Source License
protected void sortTargetCompilationUnit() { for (Iterator values = orderedSourceChildrenMap.values().iterator(); values.hasNext();) { List children = (List) values.next(); if (children.size() > 2) { Iterator i = children.iterator(); IDOMNode sourceNode = (IDOMNode) i.next(); IDOMNode previousTargetNode = (IDOMNode) sourceToTargetMap.get(sourceNode); do {//from www. j a v a 2s. c om sourceNode = (IDOMNode) i.next(); IDOMNode nextTargetNode = (IDOMNode) sourceToTargetMap.get(sourceNode); boolean reorder = true; for (IDOMNode domNode = nextTargetNode.getPreviousNode(); domNode != null; domNode = domNode .getPreviousNode()) { if (domNode == previousTargetNode) { reorder = false; break; } } if (reorder) { nextTargetNode.remove(); if (previousTargetNode.getNextNode() == null) { previousTargetNode.getParent().addChild(nextTargetNode); } else { previousTargetNode.getNextNode().insertSibling(nextTargetNode); } } previousTargetNode = nextTargetNode; } while (i.hasNext()); } } }
From source file:org.eclipse.emf.codegen.merge.java.facade.jdom.JDOMFacadeHelper.java
License:Open Source License
@Override public boolean remove(JNode node) { IDOMNode idomNode = getIDOMNode(node); IDOMNode parent = idomNode.getParent(); if (parent != null) { idomNode.remove(); return true; }// ww w. j av a2s . c o m return false; }