286N/A/*
286N/A * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
286N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
286N/A *
286N/A * This code is free software; you can redistribute it and/or modify it
286N/A * under the terms of the GNU General Public License version 2 only, as
286N/A * published by the Free Software Foundation. Oracle designates this
286N/A * particular file as subject to the "Classpath" exception as provided
286N/A * by Oracle in the LICENSE file that accompanied this code.
286N/A *
286N/A * This code is distributed in the hope that it will be useful, but WITHOUT
286N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
286N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
286N/A * version 2 for more details (a copy is included in the LICENSE file that
286N/A * accompanied this code).
286N/A *
286N/A * You should have received a copy of the GNU General Public License version
286N/A * 2 along with this work; if not, write to the Free Software Foundation,
286N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
286N/A *
286N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
286N/A * or visit www.oracle.com if you need additional information or have any
286N/A * questions.
286N/A */
286N/A
286N/Apackage com.sun.xml.internal.stream.events ;
286N/A
286N/Aimport javax.xml.stream.events.StartDocument;
286N/Aimport javax.xml.stream.Location;
286N/Aimport javax.xml.stream.XMLStreamConstants;
286N/A
286N/A/** Implementation of StartDocumentEvent.
286N/A *
286N/A * @author Neeraj Bajaj Sun Microsystems,Inc.
286N/A * @author K.Venugopal Sun Microsystems,Inc.
286N/A *
286N/A */
286N/A
286N/Apublic class StartDocumentEvent extends DummyEvent
286N/Aimplements StartDocument {
286N/A
286N/A protected String fSystemId;
286N/A protected String fEncodingScheam;
286N/A protected boolean fStandalone;
286N/A protected String fVersion;
286N/A private boolean fEncodingSchemeSet = false;
286N/A private boolean fStandaloneSet = false;
286N/A private boolean nestedCall = false;
286N/A
286N/A public StartDocumentEvent() {
286N/A init("UTF-8","1.0",true,null);
286N/A }
286N/A
286N/A public StartDocumentEvent(String encoding){
286N/A init(encoding,"1.0",true,null);
286N/A }
286N/A
286N/A public StartDocumentEvent(String encoding, String version){
286N/A init(encoding,version,true,null);
286N/A }
286N/A
286N/A public StartDocumentEvent(String encoding, String version, boolean standalone){
286N/A this.fStandaloneSet = true;
286N/A init(encoding,version,standalone,null);
286N/A }
286N/A
286N/A public StartDocumentEvent(String encoding, String version, boolean standalone,Location loc){
286N/A this.fStandaloneSet = true;
286N/A init(encoding, version, standalone, loc);
286N/A }
286N/A protected void init(String encoding, String version, boolean standalone,Location loc) {
286N/A setEventType(XMLStreamConstants.START_DOCUMENT);
286N/A this.fEncodingScheam = encoding;
286N/A this.fVersion = version;
286N/A this.fStandalone = standalone;
286N/A if (encoding != null && !encoding.equals(""))
286N/A this.fEncodingSchemeSet = true;
286N/A else {
286N/A this.fEncodingSchemeSet = false;
286N/A this.fEncodingScheam = "UTF-8";
286N/A }
286N/A this.fLocation = loc;
286N/A }
286N/A
286N/A public String getSystemId() {
286N/A if(fLocation == null )
286N/A return "";
286N/A else
286N/A return fLocation.getSystemId();
286N/A }
286N/A
286N/A
286N/A public String getCharacterEncodingScheme() {
286N/A return fEncodingScheam;
286N/A }
286N/A
286N/A public boolean isStandalone() {
286N/A return fStandalone;
286N/A }
286N/A
286N/A public String getVersion() {
286N/A return fVersion;
286N/A }
286N/A
286N/A public void setStandalone(boolean flag) {
286N/A fStandaloneSet = true;
286N/A fStandalone = flag;
286N/A }
286N/A
286N/A public void setStandalone(String s) {
286N/A fStandaloneSet = true;
286N/A if(s == null) {
286N/A fStandalone = true;
286N/A return;
286N/A }
286N/A if(s.equals("yes"))
286N/A fStandalone = true;
286N/A else
286N/A fStandalone = false;
286N/A }
286N/A
286N/A public boolean encodingSet() {
286N/A return fEncodingSchemeSet;
286N/A }
286N/A
286N/A public boolean standaloneSet() {
286N/A return fStandaloneSet;
286N/A }
286N/A
286N/A public void setEncoding(String encoding) {
286N/A fEncodingScheam = encoding;
286N/A }
286N/A
286N/A void setDeclaredEncoding(boolean value){
286N/A fEncodingSchemeSet = value;
286N/A }
286N/A
286N/A public void setVersion(String s) {
286N/A fVersion = s;
286N/A }
286N/A
286N/A void clear() {
286N/A fEncodingScheam = "UTF-8";
286N/A fStandalone = true;
286N/A fVersion = "1.0";
286N/A fEncodingSchemeSet = false;
286N/A fStandaloneSet = false;
286N/A }
286N/A
286N/A public String toString() {
286N/A String s = "<?xml version=\"" + fVersion + "\"";
286N/A s = s + " encoding='" + fEncodingScheam + "'";
286N/A if(fStandaloneSet) {
286N/A if(fStandalone)
286N/A s = s + " standalone='yes'?>";
286N/A else
286N/A s = s + " standalone='no'?>";
286N/A } else {
286N/A s = s + "?>";
286N/A }
286N/A return s;
286N/A }
286N/A
286N/A public boolean isStartDocument() {
286N/A return true;
286N/A }
286N/A
286N/A protected void writeAsEncodedUnicodeEx(java.io.Writer writer)
286N/A throws java.io.IOException
286N/A {
286N/A writer.write(toString());
286N/A }
286N/A}