src/share/classes/javax/lang/model/element/VariableElement.java

Tue, 24 Dec 2013 09:17:37 -0800

author
ksrini
date
Tue, 24 Dec 2013 09:17:37 -0800
changeset 2227
998b10c43157
parent 1484
7612fe48be90
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8029230: Update copyright year to match last edit in jdk8 langtools repository for 2013
Reviewed-by: ksrini
Contributed-by: steve.sides@oracle.com

     1 /*
     2  * Copyright (c) 2005, 2013, 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.lang.model.element;
    28 import javax.lang.model.util.Elements;
    30 /**
    31  * Represents a field, {@code enum} constant, method or constructor
    32  * parameter, local variable, resource variable, or exception
    33  * parameter.
    34  *
    35  * @author Joseph D. Darcy
    36  * @author Scott Seligman
    37  * @author Peter von der Ahé
    38  * @since 1.6
    39  */
    40 public interface VariableElement extends Element {
    42     /**
    43      * Returns the value of this variable if this is a {@code final}
    44      * field initialized to a compile-time constant.  Returns {@code
    45      * null} otherwise.  The value will be of a primitive type or a
    46      * {@code String}.  If the value is of a primitive type, it is
    47      * wrapped in the appropriate wrapper class (such as {@link
    48      * Integer}).
    49      *
    50      * <p>Note that not all {@code final} fields will have
    51      * constant values.  In particular, {@code enum} constants are
    52      * <em>not</em> considered to be compile-time constants.  To have a
    53      * constant value, a field's type must be either a primitive type
    54      * or {@code String}.
    55      *
    56      * @return the value of this variable if this is a {@code final}
    57      * field initialized to a compile-time constant, or {@code null}
    58      * otherwise
    59      *
    60      * @see Elements#getConstantExpression(Object)
    61      * @jls 15.28 Constant Expression
    62      * @jls 4.12.4 final Variables
    63      */
    64     Object getConstantValue();
    66     /**
    67      * Returns the simple name of this variable element.
    68      *
    69      * <p>For method and constructor parameters, the name of each
    70      * parameter must be distinct from the names of all other
    71      * parameters of the same executable.  If the original source
    72      * names are not available, an implementation may synthesize names
    73      * subject to the distinctness requirement above.
    74      *
    75      * @return the simple name of this variable element
    76      */
    77     @Override
    78     Name getSimpleName();
    80     /**
    81      * Returns the enclosing element of this variable.
    82      *
    83      * The enclosing element of a method or constructor parameter is
    84      * the executable declaring the parameter.
    85      *
    86      * @return the enclosing element of this variable
    87      */
    88     @Override
    89     Element getEnclosingElement();
    90 }

mercurial