001    /*
002     **
003     ** Licensed to the Apache Software Foundation (ASF) under one
004     ** or more contributor license agreements.  See the NOTICE file
005     ** distributed with this work for additional information
006     ** regarding copyright ownership.  The ASF licenses this file
007     ** to you under the Apache License, Version 2.0 (the
008     ** "License"); you may not use this file except in compliance
009     ** with the License.  You may obtain a copy of the License at
010     **
011     **  http://www.apache.org/licenses/LICENSE-2.0
012     **
013     ** Unless required by applicable law or agreed to in writing,
014     ** software distributed under the License is distributed on an
015     ** "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016     ** KIND, either express or implied.  See the License for the
017     ** specific language governing permissions and limitations
018     ** under the License.
019     */
020    package javax.xml.stream;
021    
022    import java.util.Iterator;
023    
024    import javax.xml.namespace.NamespaceContext;
025    import javax.xml.stream.events.ProcessingInstruction;
026    import javax.xml.namespace.QName;
027    import javax.xml.stream.events.Characters;
028    import javax.xml.stream.events.Comment;
029    import javax.xml.stream.events.DTD;
030    import javax.xml.stream.events.EndElement;
031    import javax.xml.stream.events.EntityDeclaration;
032    import javax.xml.stream.events.Namespace;
033    import javax.xml.stream.events.Attribute;
034    import javax.xml.stream.events.EndDocument;
035    import javax.xml.stream.events.EntityReference;
036    import javax.xml.stream.events.StartDocument;
037    import javax.xml.stream.events.StartElement;
038    
039    public abstract class XMLEventFactory {
040    
041            protected XMLEventFactory() {
042            }
043    
044            public static XMLEventFactory newInstance() throws FactoryConfigurationError {
045                return (XMLEventFactory)FactoryLocator.locate("javax.xml.stream.XMLEventFactory", "com.ctc.wstx.stax.WstxEventFactory");
046            }
047    
048            public static XMLEventFactory newFactory() throws FactoryConfigurationError {
049                return (XMLEventFactory)FactoryLocator.locate("javax.xml.stream.XMLEventFactory", "com.ctc.wstx.stax.WstxEventFactory");
050            }
051    
052            /**
053             * Create a new XMLEventFactory
054             *
055             * @deprecated to maintain API consistency.  All newInstance methods are
056             * replaced with corresponding newFactory methods.  The replacement
057             * newFactory(String factoryId, ClassLoader classLoader)
058             * method defines no changes in behavior from this method.
059             */
060            public static XMLEventFactory newInstance(String factoryId,
061                            ClassLoader classLoader) throws FactoryConfigurationError {
062                return (XMLEventFactory)FactoryLocator.locate(factoryId, "com.ctc.wstx.stax.WstxEventFactory", classLoader);
063            }
064    
065    
066            public static XMLEventFactory newFactory(String factoryId,
067                            ClassLoader classLoader) throws FactoryConfigurationError {
068                return (XMLEventFactory)FactoryLocator.locate(factoryId, "com.ctc.wstx.stax.WstxEventFactory", classLoader);
069            }
070    
071            public abstract void setLocation(Location location);
072    
073            public abstract Attribute createAttribute(QName name, String value);
074    
075            public abstract Attribute createAttribute(String localName, String value);
076    
077            public abstract Attribute createAttribute(String prefix,
078                            String namespaceURI, String localName, String value);
079    
080            public abstract Namespace createNamespace(String namespaceUri);
081    
082            public abstract Namespace createNamespace(String prefix, String namespaceUri);
083    
084            public abstract StartElement createStartElement(QName name,
085                            Iterator attributes, Iterator namespaces);
086    
087            public abstract StartElement createStartElement(String prefix,
088                            String namespaceUri, String localName);
089    
090            public abstract StartElement createStartElement(String prefix,
091                            String namespaceUri, String localName, Iterator attributes,
092                            Iterator namespaces);
093    
094            public abstract StartElement createStartElement(String prefix,
095                            String namespaceUri, String localName, Iterator attributes,
096                            Iterator namespaces, NamespaceContext context);
097    
098            public abstract EndElement createEndElement(QName name, Iterator namespaces);
099    
100            public abstract EndElement createEndElement(String prefix,
101                            String namespaceUri, String localName);
102    
103            public abstract EndElement createEndElement(String prefix,
104                            String namespaceUri, String localName, Iterator namespaces);
105    
106            public abstract Characters createCharacters(String content);
107    
108            public abstract Characters createCData(String content);
109    
110            public abstract Characters createSpace(String content);
111    
112            public abstract Characters createIgnorableSpace(String content);
113    
114            public abstract StartDocument createStartDocument();
115    
116            public abstract StartDocument createStartDocument(String encoding);
117    
118            public abstract StartDocument createStartDocument(String encoding,
119                            String version);
120    
121            public abstract StartDocument createStartDocument(String encoding,
122                            String version, boolean standalone);
123    
124            public abstract EndDocument createEndDocument();
125    
126            public abstract EntityReference createEntityReference(String name,
127                            EntityDeclaration declaration);
128    
129            public abstract Comment createComment(String text);
130    
131            public abstract ProcessingInstruction createProcessingInstruction(
132                            String target, String data);
133    
134            public abstract DTD createDTD(String dtd);
135    }