/*
 * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */
package javax.xml.soap;
/**
 * SOAPElementFactory is a factory for XML fragments that
 * will eventually end up in the SOAP part. These fragments
 * can be inserted as children of the SOAPHeader or
 * SOAPBody or SOAPEnvelope.
 *
 * 
Elements created using this factory do not have the properties
 * of an element that lives inside a SOAP header document. These
 * elements are copied into the XML document tree when they are
 * inserted.
 * @deprecated - Use javax.xml.soap.SOAPFactory for creating SOAPElements.
 * @see javax.xml.soap.SOAPFactory
 */
public class SOAPElementFactory {
    private SOAPFactory soapFactory;
    private SOAPElementFactory(SOAPFactory soapFactory) {
        this.soapFactory = soapFactory;
    }
    /**
     * Create a SOAPElement object initialized with the
     * given Name object.
     *
     * @param name a Name object with the XML name for
     *             the new element
     *
     * @return the new SOAPElement object that was
     *         created
     *
     * @exception SOAPException if there is an error in creating the
     *            SOAPElement object
     *
     * @deprecated Use
     * javax.xml.soap.SOAPFactory.createElement(javax.xml.soap.Name)
     * instead
     *
     * @see javax.xml.soap.SOAPFactory#createElement(javax.xml.soap.Name)
     * @see javax.xml.soap.SOAPFactory#createElement(javax.xml.namespace.QName)
     */
    public SOAPElement create(Name name) throws SOAPException {
        return soapFactory.createElement(name);
    }
    /**
     * Create a SOAPElement object initialized with the
     * given local name.
     *
     * @param localName a String giving the local name for
     *             the new element
     *
     * @return the new SOAPElement object that was
     *         created
     *
     * @exception SOAPException if there is an error in creating the
     *            SOAPElement object
     *
     * @deprecated Use
     * javax.xml.soap.SOAPFactory.createElement(String localName) instead
     *
     * @see javax.xml.soap.SOAPFactory#createElement(java.lang.String)
     */
    public SOAPElement create(String localName) throws SOAPException {
        return soapFactory.createElement(localName);
    }
    /**
     * Create a new SOAPElement object with the given
     * local name, prefix and uri.
     *
     * @param localName a String giving the local name
     *                  for the new element
     * @param prefix the prefix for this SOAPElement
     * @param uri a String giving the URI of the
     *            namespace to which the new element belongs
     *
     * @exception SOAPException if there is an error in creating the
     *            SOAPElement object
     *
     * @deprecated Use
     * javax.xml.soap.SOAPFactory.createElement(String localName,
     *                      String prefix,
     *                      String uri)
     * instead
     *
     * @see javax.xml.soap.SOAPFactory#createElement(java.lang.String, java.lang.String, java.lang.String)
     */
    public SOAPElement create(String localName, String prefix, String uri)
        throws SOAPException {
        return soapFactory.createElement(localName, prefix, uri);
    }
    /**
     * Creates a new instance of SOAPElementFactory.
     *
     * @return a new instance of a SOAPElementFactory
     *
     * @exception SOAPException if there was an error creating the
     *            default SOAPElementFactory
     */
    public static SOAPElementFactory newInstance() throws SOAPException {
        try {
            return new SOAPElementFactory(SOAPFactory.newInstance());
        } catch (Exception ex) {
            throw new SOAPException(
                "Unable to create SOAP Element Factory: " + ex.getMessage());
        }
    }
}