List of usage examples for org.eclipse.jdt.core.jdom IDOMNode getParent
public IDOMNode getParent();
From source file:org.eclipse.emf.codegen.jmerge.JMerger.java
License:Open Source License
public void applySortRules(IDOMNode sourceNode) { for (Iterator sortRules = jControlModel.getSortRules().iterator(); sortRules.hasNext();) { JControlModel.SortRule sortRule = (JControlModel.SortRule) sortRules.next(); if (sourcePatternDictionary.isMarkedUp(sortRule.getMarkup(), sourceNode) && sortRule.getSelector().isInstance(sourceNode)) { IDOMNode parent = sourceNode.getParent(); List children = (List) orderedSourceChildrenMap.get(parent); if (children == null) { children = new ArrayList(); orderedSourceChildrenMap.put(parent, children); }//from w w w .j a v a2s .c om children.add(sourceNode); 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 w w w . j av a 2 s .co m*/ 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.jmerge.JMerger.java
License:Open Source License
protected IDOMNode insertClone(IDOMNode sourceNode) { IDOMNode targetNode = null;/*from w ww . ja v a 2 s .c o m*/ switch (sourceNode.getNodeType()) { case IDOMNode.COMPILATION_UNIT: { targetNode = jdomFactory.createCompilationUnit(applyFormatRules(sourceNode.getContents()), ((IDOMCompilationUnit) sourceNode).getName()); break; } case IDOMNode.PACKAGE: { targetNode = jdomFactory.createPackage(applyFormatRules(sourceNode.getContents())); break; } case IDOMNode.IMPORT: { targetNode = jdomFactory.createImport(applyFormatRules(sourceNode.getContents())); break; } case IDOMNode.TYPE: { targetNode = jdomFactory.createType(applyFormatRules(sourceNode.getContents())); break; } case IDOMNode.INITIALIZER: { targetNode = jdomFactory.createInitializer(applyFormatRules(sourceNode.getContents())); break; } case IDOMNode.FIELD: { targetNode = jdomFactory.createField(applyFormatRules(sourceNode.getContents())); break; } case IDOMNode.METHOD: { targetNode = jdomFactory.createMethod(applyFormatRules(sourceNode.getContents())); break; } default: { targetNode = (IDOMNode) sourceNode.clone(); break; } } if (targetNode != null) { map(sourceNode, targetNode); mapChildren(sourceNode, targetNode); } else { // System.err.println("Warning: Cannot clone '" + sourceNode.getContents() + "'"); } for (IDOMNode previousNode = sourceNode.getPreviousNode(); previousNode != null; previousNode = previousNode .getPreviousNode()) { IDOMNode targetSibling = (IDOMNode) sourceToTargetMap.get(previousNode); if (targetSibling != null) { IDOMNode targetNextSibling = targetSibling.getNextNode(); if (targetNextSibling == null) { targetSibling.getParent().addChild(targetNode); } else { targetNextSibling.insertSibling(targetNode); } return targetNode; } } if (sourceNode.getParent() != null) { IDOMNode targetParent = (IDOMNode) sourceToTargetMap.get(sourceNode.getParent()); IDOMNode targetSibling = targetParent.getFirstChild(); if (targetSibling == null) { targetParent.addChild(targetNode); } else { targetSibling.insertSibling(targetNode); } } return targetNode; }
From source file:org.eclipse.emf.codegen.jmerge.JPatternDictionary.java
License:Open Source License
public String getQualifiedName(IDOMNode jdomNode) { switch (jdomNode.getNodeType()) { case IDOMNode.COMPILATION_UNIT: { return jdomNode.getName(); }/*from w ww . j a v a 2 s. co m*/ case IDOMNode.PACKAGE: { return jdomNode.getName(); } case IDOMNode.IMPORT: { return jdomNode.getName(); } case IDOMNode.TYPE: { return jPackage != null ? jPackage.getName() + "." + jdomNode.getName() : jdomNode.getName(); } case IDOMNode.FIELD: { return getQualifiedName(jdomNode.getParent()) + "." + jdomNode.getName(); } case IDOMNode.INITIALIZER: { String name = getQualifiedName(jdomNode.getParent()); int index = 0; for (jdomNode = jdomNode.getNextNode(); jdomNode != null; jdomNode = jdomNode.getNextNode()) { if (jdomNode.getNodeType() == IDOMNode.INITIALIZER) { ++index; } } return name + "." + index; } case IDOMNode.METHOD: { IDOMMethod jdomMethod = (IDOMMethod) jdomNode; StringBuffer result = new StringBuffer(getQualifiedName(jdomNode.getParent())); result.append("."); if (jdomMethod.isConstructor()) { result.append(jdomMethod.getParent().getName()); } else { result.append(jdomMethod.getName()); } result.append("("); //) String[] parameters = jdomMethod.getParameterTypes(); if (parameters != null) { for (int i = 0; i < parameters.length; ++i) { if (i != 0) { result.append(", "); } result.append(parameters[i]); } } // ( result.append(")"); return result.toString(); } default: { return ""; } } }
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();/* w w w . ja va 2 s. c o m*/ return true; } return false; }