rt/emul/compact/src/main/java/java/text/ParsePosition.java
author Jaroslav Tulach <jtulach@netbeans.org>
Thu, 03 Oct 2013 15:40:35 +0200
branchjdk7-b147
changeset 1334 588d5bf7a560
permissions -rw-r--r--
Set of JDK classes needed to run javac
     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 }