/** * Copyright (c) 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation */ package org.eclipse.emf.codegen.merge.java.facade.jdom; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.List; import org.eclipse.jdt.core.jdom.IDOMNode; import org.eclipse.emf.codegen.merge.java.facade.AbstractJNode; import org.eclipse.emf.codegen.merge.java.facade.FacadeFlags; import org.eclipse.emf.codegen.merge.java.facade.FacadeHelper; import org.eclipse.emf.codegen.merge.java.facade.JNode; /** * @since 2.2.0 */ @SuppressWarnings({"deprecation", "unchecked", "rawtypes"}) public abstract class JDOMJNode extends AbstractJNode { private JDOMFacadeHelper facadeHelper; private IDOMNode wrappedObject; protected JDOMJNode(IDOMNode idomNode) { wrappedObject = idomNode; } @Override public void dispose() { facadeHelper = null; wrappedObject = null; } @Override public boolean isDisposed() { return wrappedObject == null; } @Override public JDOMFacadeHelper getFacadeHelper() { return facadeHelper; } @Override public void setFacadeHelper(FacadeHelper facadeHelper) { this.facadeHelper = (JDOMFacadeHelper)facadeHelper; } @Override protected IDOMNode getWrappedObject() { return wrappedObject; } public String getName() { return getWrappedObject().getName(); } public void setName(String name) { getWrappedObject().setName(name); } @Override public int getFlags() { return FacadeFlags.DEFAULT; } public void setFlags(int flags) { // Ignore. } public String getContents() { return getWrappedObject().getContents(); } public JNode getParent() { return getFacadeHelper().convertToNode(getWrappedObject().getParent()); } @Override public List getChildren() { if (!isDisposed()) { List children = new ArrayList(); for (Enumeration e = getWrappedObject().getChildren(); e.hasMoreElements();) { IDOMNode node = (IDOMNode)e.nextElement(); JNode jNode = getFacadeHelper().convertToNode(node); children.add(jNode); } return Collections.unmodifiableList(children); } return Collections.emptyList(); } }