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

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

Introduction

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

Prototype

public IDOMNode getParent();

Source Link

Document

Returns the parent of this node.

Usage

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