List of usage examples for org.eclipse.jdt.core.jdom IDOMNode getPreviousNode
public IDOMNode getPreviousNode();
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 a v a2s . c o 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 w w . j av 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.merge.java.facade.jdom.JDOMFacadeHelper.java
License:Open Source License
@Override public JNode getPrevious(JNode node) { IDOMNode idomNode = getIDOMNode(node); return convertToNode(idomNode.getPreviousNode()); }