< prev index next >

src/jdk.jdi/share/classes/com/sun/jdi/ClassLoaderReference.java

Print this page
rev 58770 : [mq]: svc-spec-update

*** 1,7 **** /* ! * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 40,93 **** * @since 1.3 */ public interface ClassLoaderReference extends ObjectReference { /** ! * Returns a list of all loaded classes that were defined by this ! * class loader. No ordering of this list guaranteed. ! * <P> ! * The returned list will include reference types ! * loaded at least to the point of preparation and ! * types (like array) for which preparation is ! * not defined. * ! * @return a List of {@link ReferenceType} objects mirroring types ! * loaded by this class loader. The list has length 0 if no types * have been defined by this classloader. */ List<ReferenceType> definedClasses(); /** ! * Returns a list of all classes for which this class loader has ! * been recorded as the initiating loader in the target VM. ! * The list contains ReferenceTypes defined directly by this loader ! * (as returned by {@link #definedClasses}) and any types for which ! * loading was delegated by this class loader to another class loader. * <p> * The visible class list has useful properties with respect to * the type namespace. A particular type name will occur at most * once in the list. Each field or variable declared with that * type name in a class defined by * this class loader must be resolved to that single type. * <p> * No ordering of the returned list is guaranteed. * <p> - * See - * <cite>The Java&trade; Virtual Machine Specification</cite>, - * section 5.3 - Creation and Loading - * for more information on the initiating classloader. - * <p> * Note that unlike {@link #definedClasses()} * and {@link VirtualMachine#allClasses()}, * some of the returned reference types may not be prepared. * Attempts to perform some operations on unprepared reference types * (e.g. {@link ReferenceType#fields() fields()}) will throw * a {@link ClassNotPreparedException}. * Use {@link ReferenceType#isPrepared()} to determine if * a reference type is prepared. * ! * @return a List of {@link ReferenceType} objects mirroring classes ! * initiated by this class loader. The list has length 0 if no classes ! * are visible to this classloader. */ List<ReferenceType> visibleClasses(); } --- 40,108 ---- * @since 1.3 */ public interface ClassLoaderReference extends ObjectReference { /** ! * Returns a list of all classes defined by this class loader. ! * No ordering of this list guaranteed. ! * The returned list will include all reference types, including ! * {@link Class#isHidden hidden classes or interfaces}, loaded ! * at least to the point of preparation and types (like array) ! * for which preparation is not defined. * ! * @return a {@code List} of {@link ReferenceType} objects mirroring types ! * defined by this class loader. The list has length 0 if no types * have been defined by this classloader. */ List<ReferenceType> definedClasses(); /** ! * Returns a list of all classes which this class loader ! * can find by name via {@link ClassLoader#loadClass(String, boolean) ! * ClassLoader::loadClass}, {@link Class#forName(String) Class::forName} ! * and bytecode linkage in the target VM. That is, this class loader ! * has been recorded as an initiating loader of these classes. ! * <p> ! * Each class in the returned list was created by this class loader ! * either by defining it directly or by delegation to another class loader ! * (see JVMS {@jvms 5.3}). ! * ! * The returned list does not include {@link Class#isHidden() <em>hidden</em>} ! * classes or interfaces that are created by the invocation of ! * {@link java.lang.invoke.MethodHandles.Lookup#defineHiddenClass(byte[], boolean, java.lang.invoke.MethodHandles.Lookup.ClassOption...) ! * Lookup::defineHiddenClass} because: ! * <ul> ! * <li>A hidden class or interface cannot be referenced by the constant pools ! * of other classes and interfaces. ! * <li>A hidden class or interface cannot be discovered by any class loader. ! * </ul> ! * <p> ! * In addition, the returned list does not include array classes whose ! * {@linkplain ArrayType#componentType() element type} is a ! * {@link Class#isHidden() hidden class or interface} as they cannot ! * be discovered by this class loader. * <p> * The visible class list has useful properties with respect to * the type namespace. A particular type name will occur at most * once in the list. Each field or variable declared with that * type name in a class defined by * this class loader must be resolved to that single type. * <p> * No ordering of the returned list is guaranteed. * <p> * Note that unlike {@link #definedClasses()} * and {@link VirtualMachine#allClasses()}, * some of the returned reference types may not be prepared. * Attempts to perform some operations on unprepared reference types * (e.g. {@link ReferenceType#fields() fields()}) will throw * a {@link ClassNotPreparedException}. * Use {@link ReferenceType#isPrepared()} to determine if * a reference type is prepared. * ! * @return a {@code List} of {@link ReferenceType} objects mirroring ! * classes which this class loader can find by name. The list ! * has length 0 if no classes are visible to this classloader. ! * ! * @jvms 5.3 Creation and Loading */ List<ReferenceType> visibleClasses(); }
< prev index next >