content: /*
   *  This file is part of AndroidIDE.
   *
   *  AndroidIDE is free software: you can redistribute it and/or modify
   *  it under the terms of the GNU General Public License as published by
   *  the Free Software Foundation, either version 3 of the License, or
   *  (at your option) any later version.
   *
   *  AndroidIDE 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 for more details.
   *
   *  You should have received a copy of the GNU General Public License
   *   along with AndroidIDE.  If not, see <https://www.gnu.org/licenses/>.
   */
  
  /*
   * 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 jaxp.sun.xml.internal.stream.events;
  
  import jaxp.xml.stream.events.StartDocument;
  import jaxp.xml.stream.Location;
  import jaxp.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.equals(""))
              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 = "<?xml version=\"" + fVersion + "\"";
          s = s + " encoding='" + fEncodingScheam + "'";
          if(fStandaloneSet) {
              if(fStandalone)
                  s = s + " standalone='yes'?>";
              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());
      }
  }
  