< 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™ 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 >