src/share/classes/javax/tools/Diagnostic.java

Wed, 13 Apr 2011 11:35:43 -0700

author
jjh
date
Wed, 13 Apr 2011 11:35:43 -0700
changeset 972
694ff82ca68e
parent 554
9d9f26857129
child 2087
515d54c1b063
permissions
-rw-r--r--

7032975: API files in javax.annotation.processing need to be updated for references to JLS
7032972: API files in javax.tools need to updated for references to JVM Spec with editions/hyperlinks
7032978: API files in javax.tools need to be updated for references to JLS with editions/hyperlinks
Summary: Removed URLs and 'edition' references
Reviewed-by: jjg, darcy

     1 /*
     2  * Copyright (c) 2005, 2006, 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  */
    26 package javax.tools;
    28 import java.util.Locale;
    30 /**
    31  * Interface for diagnostics from tools.  A diagnostic usually reports
    32  * a problem at a specific position in a source file.  However, not
    33  * all diagnostics are associated with a position or a file.
    34  *
    35  * <p>A position is a zero-based character offset from the beginning of
    36  * a file.  Negative values (except {@link #NOPOS}) are not valid
    37  * positions.
    38  *
    39  * <p>Line and column numbers begin at 1.  Negative values (except
    40  * {@link #NOPOS}) and 0 are not valid line or column numbers.
    41  *
    42  * @param <S> the type of source object used by this diagnostic
    43  *
    44  * @author Peter von der Ah&eacute;
    45  * @author Jonathan Gibbons
    46  * @since 1.6
    47  */
    48 public interface Diagnostic<S> {
    50     /**
    51      * Kinds of diagnostics, for example, error or warning.
    52      */
    53     enum Kind {
    54         /**
    55          * Problem which prevents the tool's normal completion.
    56          */
    57         ERROR,
    58         /**
    59          * Problem which does not usually prevent the tool from
    60          * completing normally.
    61          */
    62         WARNING,
    63         /**
    64          * Problem similar to a warning, but is mandated by the tool's
    65          * specification.  For example, the Java&trade; Language
    66          * Specification, 3rd Ed. mandates warnings on certain
    67          * unchecked operations and the use of deprecated methods.
    68          */
    69         MANDATORY_WARNING,
    70         /**
    71          * Informative message from the tool.
    72          */
    73         NOTE,
    74         /**
    75          * Diagnostic which does not fit within the other kinds.
    76          */
    77         OTHER,
    78     }
    80     /**
    81      * Used to signal that no position is available.
    82      */
    83     public final static long NOPOS = -1;
    85     /**
    86      * Gets the kind of this diagnostic, for example, error or
    87      * warning.
    88      * @return the kind of this diagnostic
    89      */
    90     Kind getKind();
    92     /**
    93      * Gets the source object associated with this diagnostic.
    94      *
    95      * @return the source object associated with this diagnostic.
    96      * {@code null} if no source object is associated with the
    97      * diagnostic.
    98      */
    99     S getSource();
   101     /**
   102      * Gets a character offset from the beginning of the source object
   103      * associated with this diagnostic that indicates the location of
   104      * the problem.  In addition, the following must be true:
   105      *
   106      * <p>{@code getStartPostion() <= getPosition()}
   107      * <p>{@code getPosition() <= getEndPosition()}
   108      *
   109      * @return character offset from beginning of source; {@link
   110      * #NOPOS} if {@link #getSource()} would return {@code null} or if
   111      * no location is suitable
   112      */
   113     long getPosition();
   115     /**
   116      * Gets the character offset from the beginning of the file
   117      * associated with this diagnostic that indicates the start of the
   118      * problem.
   119      *
   120      * @return offset from beginning of file; {@link #NOPOS} if and
   121      * only if {@link #getPosition()} returns {@link #NOPOS}
   122      */
   123     long getStartPosition();
   125     /**
   126      * Gets the character offset from the beginning of the file
   127      * associated with this diagnostic that indicates the end of the
   128      * problem.
   129      *
   130      * @return offset from beginning of file; {@link #NOPOS} if and
   131      * only if {@link #getPosition()} returns {@link #NOPOS}
   132      */
   133     long getEndPosition();
   135     /**
   136      * Gets the line number of the character offset returned by
   137      * {@linkplain #getPosition()}.
   138      *
   139      * @return a line number or {@link #NOPOS} if and only if {@link
   140      * #getPosition()} returns {@link #NOPOS}
   141      */
   142     long getLineNumber();
   144     /**
   145      * Gets the column number of the character offset returned by
   146      * {@linkplain #getPosition()}.
   147      *
   148      * @return a column number or {@link #NOPOS} if and only if {@link
   149      * #getPosition()} returns {@link #NOPOS}
   150      */
   151     long getColumnNumber();
   153     /**
   154      * Gets a diagnostic code indicating the type of diagnostic.  The
   155      * code is implementation-dependent and might be {@code null}.
   156      *
   157      * @return a diagnostic code
   158      */
   159     String getCode();
   161     /**
   162      * Gets a localized message for the given locale.  The actual
   163      * message is implementation-dependent.  If the locale is {@code
   164      * null} use the default locale.
   165      *
   166      * @param locale a locale; might be {@code null}
   167      * @return a localized message
   168      */
   169     String getMessage(Locale locale);
   170 }

mercurial