Example usage for org.eclipse.jdt.core.jdom IDOMNode getPreviousNode

List of usage examples for org.eclipse.jdt.core.jdom IDOMNode getPreviousNode

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.jdom IDOMNode getPreviousNode.

Prototype

public IDOMNode getPreviousNode();

Source Link

Document

Returns the sibling node immediately preceding this node.

Usage

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());
}