001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements. See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership. The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License. You may obtain a copy of the License at
009     *
010     * http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing,
013     * software distributed under the License is distributed on an
014     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     * KIND, either express or implied. See the License for the
016     * specific language governing permissions and limitations
017     * under the License.
018     */
019    package javax.xml.soap;
020    
021    /**
022     * <P><CODE>SOAPElementFactory</CODE> is a factory for XML fragments that will eventually end up in
023     * the SOAP part. These fragments can be inserted as children of the <CODE> SOAPHeader</CODE> or
024     * <CODE>SOAPBody</CODE> or <CODE> SOAPEnvelope</CODE>.</P>
025     * <p/>
026     * <P>Elements created using this factory do not have the properties of an element that lives inside
027     * a SOAP header document. These elements are copied into the XML document tree when they are
028     * inserted.</P>
029     *
030     * @see SOAPFactory SOAPFactory
031     * @deprecated - Use javax.xml.soap.SOAPFactory for creating SOAPElements.
032     */
033    public class SOAPElementFactory {
034    
035        /**
036         * Create a new <code>SOAPElementFactory from a <code>SOAPFactory</code>.
037         *
038         * @param soapfactory the <code>SOAPFactory</code> to use
039         */
040        private SOAPElementFactory(SOAPFactory soapfactory) {
041            sf = soapfactory;
042        }
043    
044        /**
045         * Create a <CODE>SOAPElement</CODE> object initialized with the given <CODE>Name</CODE>
046         * object.
047         *
048         * @param name a <CODE>Name</CODE> object with the XML name for the new element
049         * @return the new <CODE>SOAPElement</CODE> object that was created
050         * @throws SOAPException if there is an error in creating the <CODE>SOAPElement</CODE> object
051         * @see SOAPFactory#createElement(Name) SOAPFactory.createElement(javax.xml.soap.Name)
052         * @deprecated Use javax.xml.soap.SOAPFactory.createElement(javax.xml.soap.Name) instead
053         */
054        public SOAPElement create(Name name) throws SOAPException {
055            return sf.createElement(name);
056        }
057    
058        /**
059         * Create a <CODE>SOAPElement</CODE> object initialized with the given local name.
060         *
061         * @param localName a <CODE>String</CODE> giving the local name for the new element
062         * @return the new <CODE>SOAPElement</CODE> object that was created
063         * @throws SOAPException if there is an error in creating the <CODE>SOAPElement</CODE> object
064         * @see SOAPFactory#createElement(String) SOAPFactory.createElement(java.lang.String)
065         * @deprecated Use javax.xml.soap.SOAPFactory.createElement(String localName) instead
066         */
067        public SOAPElement create(String localName) throws SOAPException {
068            return sf.createElement(localName);
069        }
070    
071        /**
072         * Create a new <CODE>SOAPElement</CODE> object with the given local name, prefix and uri.
073         *
074         * @param localName a <CODE>String</CODE> giving the local name for the new element
075         * @param prefix    the prefix for this <CODE> SOAPElement</CODE>
076         * @param uri       a <CODE>String</CODE> giving the URI of the namespace to which the new
077         *                  element belongs
078         * @return the new <CODE>SOAPElement</CODE> object that was created
079         * @throws SOAPException if there is an error in creating the <CODE>SOAPElement</CODE> object
080         * @see SOAPFactory#createElement(String, String, String)
081         *      SOAPFactory.createElement(java.lang.String, java.lang.String, java.lang.String)
082         * @deprecated Use javax.xml.soap.SOAPFactory.createElement(String localName, String prefix,
083         *             String uri) instead
084         */
085        public SOAPElement create(String localName, String prefix, String uri)
086                throws SOAPException {
087            return sf.createElement(localName, prefix, uri);
088        }
089    
090        /**
091         * Creates a new instance of <CODE>SOAPElementFactory</CODE>.
092         *
093         * @return a new instance of a <CODE> SOAPElementFactory</CODE>
094         * @throws SOAPException if there was an error creating the default <CODE>SOAPElementFactory
095         */
096        public static SOAPElementFactory newInstance() throws SOAPException {
097    
098            try {
099                return new SOAPElementFactory(SOAPFactory.newInstance());
100            } catch (Exception exception) {
101                throw new SOAPException("Unable to create SOAP Element Factory: "
102                        + exception.getMessage());
103            }
104        }
105    
106        private SOAPFactory sf;
107    }