List of usage examples for org.eclipse.jdt.core.jdom IDOMNode clone
public Object clone();
From source file:org.eclipse.emf.codegen.jmerge.JMerger.java
License:Open Source License
protected IDOMNode insertClone(IDOMNode sourceNode) { IDOMNode targetNode = null;// ww w .ja v a2s. 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 cloneNode(Object context, JNode node) { String content = applyFormatRules(node.getContents()); IDOMNode idomNode = null;//from w ww . ja va2 s . co m if (node instanceof JCompilationUnit) { idomNode = getIDOMNode(createCompilationUnit(node.getName(), content)); } else if (node instanceof JField) { idomNode = getJDOMFactory().createField(content); } else if (node instanceof JImport) { idomNode = getJDOMFactory().createImport(content); } else if (node instanceof JInitializer) { idomNode = getJDOMFactory().createInitializer(content); } else if (node instanceof JMethod) { idomNode = getJDOMFactory().createMethod(content); } else if (node instanceof JPackage) { idomNode = getJDOMFactory().createPackage(content); } else if (node instanceof JType) { idomNode = getJDOMFactory().createType(content); } else { IDOMNode originalIDOMNode = JDOMFacadeHelper.getIDOMNode(node); if (originalIDOMNode != null) { idomNode = (IDOMNode) originalIDOMNode.clone(); } } return idomNode != null ? convertToNode(idomNode) : null; }