• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 1998, 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  */
25 
26 package com.sun.jdi;
27 
28 /**
29  * Provides information on the accessibility of a type or type component.
30  * Mirrors for program elements which allow an
31  * an access specifier (private, protected, public) provide information
32  * on that part of the declaration through this interface.
33  *
34  * @author Robert Field
35  * @author Gordon Hirsch
36  * @author James McIlree
37  * @since  1.3
38  */
39 @jdk.Exported
40 public interface Accessible {
41 
42     /**
43      * Returns the Java<sup><font size=-2>TM</font></sup>
44      * programming language modifiers, encoded in an integer.
45      * <p>
46      * The modifier encodings are defined in
47      * <cite>The Java&trade; Virtual Machine Specification</cite>
48      * in the <code>access_flag</code> tables for classes(section 4.1), fields(section 4.5), and methods(section 4.6).
49      */
modifiers()50     public int modifiers();
51 
52     /**
53      * Determines if this object mirrors a private item.
54      * For {@link ArrayType}, the return value depends on the
55      * array component type. For primitive arrays the return value
56      * is always false. For object arrays, the return value is the
57      * same as would be returned for the component type.
58      * For primitive classes, such as {@link java.lang.Integer#TYPE},
59      * the return value is always false.
60      *
61      * @return <code>true</code> for items with private access;
62      * <code>false</code> otherwise.
63      */
isPrivate()64     boolean isPrivate();
65 
66     /**
67      * Determines if this object mirrors a package private item.
68      * A package private item is declared with no access specifier.
69      * For {@link ArrayType}, the return value depends on the
70      * array component type. For primitive arrays the return value
71      * is always false. For object arrays, the return value is the
72      * same as would be returned for the component type.
73      * For primitive classes, such as {@link java.lang.Integer#TYPE},
74      * the return value is always false.
75      *
76      * @return <code>true</code> for items with package private access;
77      * <code>false</code> otherwise.
78      */
isPackagePrivate()79     boolean isPackagePrivate();
80 
81     /**
82      * Determines if this object mirrors a protected item.
83      * For {@link ArrayType}, the return value depends on the
84      * array component type. For primitive arrays the return value
85      * is always false. For object arrays, the return value is the
86      * same as would be returned for the component type.
87      * For primitive classes, such as {@link java.lang.Integer#TYPE},
88      * the return value is always false.
89      *
90      * @return <code>true</code> for items with private access;
91      * <code>false</code> otherwise.
92      */
isProtected()93     boolean isProtected();
94 
95     /**
96      * Determines if this object mirrors a public item.
97      * For {@link ArrayType}, the return value depends on the
98      * array component type. For primitive arrays the return value
99      * is always true. For object arrays, the return value is the
100      * same as would be returned for the component type.
101      * For primitive classes, such as {@link java.lang.Integer#TYPE},
102      * the return value is always true.
103      *
104      * @return <code>true</code> for items with public access;
105      * <code>false</code> otherwise.
106      */
isPublic()107     boolean isPublic();
108 }
109