1 /*
   2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   3  *
   4  * This code is free software; you can redistribute it and/or modify it
   5  * under the terms of the GNU General Public License version 2 only, as
   6  * published by the Free Software Foundation.  Oracle designates this
   7  * particular file as subject to the "Classpath" exception as provided
   8  * by Oracle in the LICENSE file that accompanied this code.
   9  *
  10  * This code is distributed in the hope that it will be useful, but WITHOUT
  11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13  * version 2 for more details (a copy is included in the LICENSE file that
  14  * accompanied this code).
  15  *
  16  * You should have received a copy of the GNU General Public License version
  17  * 2 along with this work; if not, write to the Free Software Foundation,
  18  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19  *
  20  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21  * or visit www.oracle.com if you need additional information or have any
  22  * questions.
  23  */
  24 
  25 /*
  26  * Copyright (c) 2009 by Oracle Corporation. All Rights Reserved.
  27  */
  28 
  29 package javax.xml.stream;
  30 
  31 /**
  32  * Provides information on the location of an event.
  33  *
  34  * All the information provided by a Location is optional.  For example
  35  * an application may only report line numbers.
  36  *
  37  * @version 1.0
  38  * @author Copyright (c) 2009 by Oracle Corporation. All Rights Reserved.
  39  * @since 1.6
  40  */
  41 public interface Location {
  42   /**
  43    * Return the line number where the current event ends,
  44    * returns -1 if none is available.
  45    * @return the current line number
  46    */
  47   int getLineNumber();
  48 
  49   /**
  50    * Return the column number where the current event ends,
  51    * returns -1 if none is available.
  52    * @return the current column number
  53    */
  54   int getColumnNumber();
  55 
  56   /**
  57    * Return the byte or character offset into the input source this location
  58    * is pointing to. If the input source is a file or a byte stream then
  59    * this is the byte offset into that stream, but if the input source is
  60    * a character media then the offset is the character offset.
  61    * Returns -1 if there is no offset available.
  62    * @return the current offset
  63    */
  64   int getCharacterOffset();
  65 
  66   /**
  67    * Returns the public ID of the XML
  68    * @return the public ID, or null if not available
  69    */
  70   public String getPublicId();
  71 
  72   /**
  73    * Returns the system ID of the XML
  74    * @return the system ID, or null if not available
  75    */
  76   public String getSystemId();
  77 }