View Javadoc
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       */
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       */
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       */
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       */
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      */
107     boolean isPublic();
108 }