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