Home » openjdk-7 » java » text » [javadoc | source]

    1   /*
    2    * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Oracle designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Oracle in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22    * or visit www.oracle.com if you need additional information or have any
   23    * questions.
   24    */
   25   
   26   /*
   27    * (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
   28    * (C) Copyright IBM Corp. 1996 - 1998 - All Rights Reserved
   29    *
   30    *   The original version of this source code and documentation is copyrighted
   31    * and owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These
   32    * materials are provided under terms of a License Agreement between Taligent
   33    * and Sun. This technology is protected by multiple US and International
   34    * patents. This notice and attribution to Taligent may not be removed.
   35    *   Taligent is a registered trademark of Taligent, Inc.
   36    *
   37    */
   38   
   39   package java.text;
   40   
   41   
   42   /**
   43    * <code>ParsePosition</code> is a simple class used by <code>Format</code>
   44    * and its subclasses to keep track of the current position during parsing.
   45    * The <code>parseObject</code> method in the various <code>Format</code>
   46    * classes requires a <code>ParsePosition</code> object as an argument.
   47    *
   48    * <p>
   49    * By design, as you parse through a string with different formats,
   50    * you can use the same <code>ParsePosition</code>, since the index parameter
   51    * records the current position.
   52    *
   53    * @author      Mark Davis
   54    * @see         java.text.Format
   55    */
   56   
   57   public class ParsePosition {
   58   
   59       /**
   60        * Input: the place you start parsing.
   61        * <br>Output: position where the parse stopped.
   62        * This is designed to be used serially,
   63        * with each call setting index up for the next one.
   64        */
   65       int index = 0;
   66       int errorIndex = -1;
   67   
   68       /**
   69        * Retrieve the current parse position.  On input to a parse method, this
   70        * is the index of the character at which parsing will begin; on output, it
   71        * is the index of the character following the last character parsed.
   72        */
   73       public int getIndex() {
   74           return index;
   75       }
   76   
   77       /**
   78        * Set the current parse position.
   79        */
   80       public void setIndex(int index) {
   81           this.index = index;
   82       }
   83   
   84       /**
   85        * Create a new ParsePosition with the given initial index.
   86        */
   87       public ParsePosition(int index) {
   88           this.index = index;
   89       }
   90       /**
   91        * Set the index at which a parse error occurred.  Formatters
   92        * should set this before returning an error code from their
   93        * parseObject method.  The default value is -1 if this is not set.
   94        * @since 1.2
   95        */
   96       public void setErrorIndex(int ei)
   97       {
   98           errorIndex = ei;
   99       }
  100   
  101       /**
  102        * Retrieve the index at which an error occurred, or -1 if the
  103        * error index has not been set.
  104        * @since 1.2
  105        */
  106       public int getErrorIndex()
  107       {
  108           return errorIndex;
  109       }
  110       /**
  111        * Overrides equals
  112        */
  113       public boolean equals(Object obj)
  114       {
  115           if (obj == null) return false;
  116           if (!(obj instanceof ParsePosition))
  117               return false;
  118           ParsePosition other = (ParsePosition) obj;
  119           return (index == other.index && errorIndex == other.errorIndex);
  120       }
  121   
  122       /**
  123        * Returns a hash code for this ParsePosition.
  124        * @return a hash code value for this object
  125        */
  126       public int hashCode() {
  127           return (errorIndex << 16) | index;
  128       }
  129   
  130       /**
  131        * Return a string representation of this ParsePosition.
  132        * @return  a string representation of this object
  133        */
  134       public String toString() {
  135           return getClass().getName() +
  136               "[index=" + index +
  137               ",errorIndex=" + errorIndex + ']';
  138       }
  139   }

Home » openjdk-7 » java » text » [javadoc | source]