emul/mini/src/main/java/java/lang/reflect/Member.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 26 Jan 2013 08:47:05 +0100
changeset 592 5e13b1ac2886
parent 258 21b390daf444
permissions -rw-r--r--
In order to support fields of the same name in subclasses we are now prefixing them with name of the class that defines them. To provide convenient way to access them from generated bytecode and also directly from JavaScript, there is a getter/setter function for each field. It starts with _ followed by the field name. If called with a parameter, it sets the field, with a parameter it just returns it.
     1 /*
     2  * Copyright (c) 1996, 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  */
    25 
    26 package java.lang.reflect;
    27 
    28 /**
    29  * Member is an interface that reflects identifying information about
    30  * a single member (a field or a method) or a constructor.
    31  *
    32  * @see java.lang.Class
    33  * @see Field
    34  * @see Method
    35  * @see Constructor
    36  *
    37  * @author Nakul Saraiya
    38  */
    39 public
    40 interface Member {
    41 
    42     /**
    43      * Identifies the set of all public members of a class or interface,
    44      * including inherited members.
    45      * @see java.lang.SecurityManager#checkMemberAccess
    46      */
    47     public static final int PUBLIC = 0;
    48 
    49     /**
    50      * Identifies the set of declared members of a class or interface.
    51      * Inherited members are not included.
    52      * @see java.lang.SecurityManager#checkMemberAccess
    53      */
    54     public static final int DECLARED = 1;
    55 
    56     /**
    57      * Returns the Class object representing the class or interface
    58      * that declares the member or constructor represented by this Member.
    59      *
    60      * @return an object representing the declaring class of the
    61      * underlying member
    62      */
    63     public Class<?> getDeclaringClass();
    64 
    65     /**
    66      * Returns the simple name of the underlying member or constructor
    67      * represented by this Member.
    68      *
    69      * @return the simple name of the underlying member
    70      */
    71     public String getName();
    72 
    73     /**
    74      * Returns the Java language modifiers for the member or
    75      * constructor represented by this Member, as an integer.  The
    76      * Modifier class should be used to decode the modifiers in
    77      * the integer.
    78      *
    79      * @return the Java language modifiers for the underlying member
    80      * @see Modifier
    81      */
    82     public int getModifiers();
    83 
    84     /**
    85      * Returns {@code true} if this member was introduced by
    86      * the compiler; returns {@code false} otherwise.
    87      *
    88      * @return true if and only if this member was introduced by
    89      * the compiler.
    90      * @since 1.5
    91      */
    92     public boolean isSynthetic();
    93 }