Code Search for Developers
 
 
  

XmlElementImpl.java from SmartFrog at Krugle


Show XmlElementImpl.java syntax highlighted

/** (C) Copyright 2005 Hewlett-Packard Development Company, LP

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

 For more information: www.smartfrog.org

 */
package org.smartfrog.services.xml.impl;

import nu.xom.Element;
import nu.xom.Node;
import nu.xom.XMLException;
import org.smartfrog.services.xml.interfaces.LocalNode;
import org.smartfrog.services.xml.interfaces.XmlElement;
import org.smartfrog.sfcore.common.SmartFrogException;

import java.rmi.RemoteException;
import java.util.Enumeration;

/**
 * Probably the most complex of all the nodes, the element implementation
 */
public class XmlElementImpl extends CompoundXmlNode implements XmlElement {

    /**
     * @throws RemoteException In case of network/rmi error
     *  */
    public XmlElementImpl() throws RemoteException {
    }

    /**
     * create a node of the appropriate type. This is called during deployment;
     *
     * @return a new node
     * @throws RemoteException In case of network/rmi error
     * @throws SmartFrogException For smartfrog problems, and for caught
     *                            XMLExceptions
     */
    public Node createNode() throws RemoteException, SmartFrogException {
        String localname = sfResolve(ATTR_LOCALNAME, (String) null, true);
        String namespace = sfResolve(ATTR_NAMESPACE, (String) null, false);
        try {
            Element element = new Element(localname, namespace);
            return element;
        } catch (XMLException e) {
            throw XmlNodeHelper.handleXmlException(e);
        }
    }

    /**
     * Get the node as an element
     *
     * @return the node typecast to an element
     */
    public Element getElement() {
        return (Element) getNode();
    }

    /**
     * Add our children
     * @throws RemoteException In case of network/rmi error
     * @throws SmartFrogException For smartfrog problems, and for caught
     *                            XMLExceptions
     */
    protected void addChildren() throws SmartFrogException, RemoteException {
        for (Enumeration e = sfChildren(); e.hasMoreElements();) {
            Object elem = e.nextElement();
            if (elem instanceof LocalNode) {
                LocalNode node = (LocalNode) elem;
                appendChild(node);
            } else if (elem instanceof XmlNamespaceDeclarationImpl) {
                //namespaces are special
                XmlNamespaceDeclarationImpl declaration = (XmlNamespaceDeclarationImpl) elem;
                declaration.addDeclaration(getElement());
            }
        }
    }

    /**
     * add all children as a node
     */
    /*
    protected void addAllChildNodes() {
        for (Enumeration e = sfChildren(); e.hasMoreElements();) {
            Object elem = e.nextElement();
            if (elem instanceof LocalNode) {
                LocalNode node = (LocalNode) elem;
                appendChild(node);
            }
        }
    }
    */
}




See more files for this project here

SmartFrog

SmartFrog (Smart Framework for Object Groups) is a framework for configuring and automatically activating distributed applications. \r\nThe SmartFrog framework is released under LGPL license.\r\nMore info at: www.smartfrog.org

Project homepage: http://sourceforge.net/projects/smartfrog
Programming language(s): Java,XML
License: other

  codecs/
    NuxBinaryCodec.java
    XmlTextCodec.java
  CompoundXmlNode.java
  SerializedXomDocument.java
  SimpleXmlNode.java
  XmlAttributeImpl.java
  XmlCommentImpl.java
  XmlDocTypeImpl.java
  XmlDocumentImpl.java
  XmlElementImpl.java
  XmlNamespaceDeclarationImpl.java
  XmlNodeHelper.java
  XmlProcessingInstructionImpl.java
  XmlTextNodeImpl.java