< prev index next >

src/jdk.jdi/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java

Print this page




 309         return System.identityHashCode(this);
 310     }
 311 
 312     public List<ModuleReference> allModules() {
 313         validateVM();
 314         List<ModuleReference> modules = retrieveAllModules();
 315         return Collections.unmodifiableList(modules);
 316     }
 317 
 318      List<ReferenceType> classesBySignature(String signature) {
 319         validateVM();
 320         List<ReferenceType> list;
 321         if (retrievedAllTypes) {
 322             list = findReferenceTypes(signature);
 323         } else {
 324             list = retrieveClassesBySignature(signature);
 325         }
 326         return Collections.unmodifiableList(list);
 327     }
 328 








 329     public List<ReferenceType> classesByName(String className) {
 330         validateVM();
 331         String signature = JNITypeParser.typeNameToSignature(className);
 332         List<ReferenceType> list;
 333         if (retrievedAllTypes) {
 334            list = findReferenceTypes(signature);
 335         } else {
 336            list = retrieveClassesBySignature(signature);
 337         }


















 338         return Collections.unmodifiableList(list);
 339     }
 340 
 341     public List<ReferenceType> allClasses() {
 342         validateVM();
 343 
 344         if (!retrievedAllTypes) {
 345             retrieveAllClasses();
 346         }
 347         ArrayList<ReferenceType> a;
 348         synchronized (this) {
 349             a = new ArrayList<>(typesBySignature);
 350         }
 351         return Collections.unmodifiableList(a);
 352     }
 353 
 354     /**
 355      * Performs an action for each loaded type.
 356      */
 357     public void forEachClass(Consumer<ReferenceType> action) {




 309         return System.identityHashCode(this);
 310     }
 311 
 312     public List<ModuleReference> allModules() {
 313         validateVM();
 314         List<ModuleReference> modules = retrieveAllModules();
 315         return Collections.unmodifiableList(modules);
 316     }
 317 
 318      List<ReferenceType> classesBySignature(String signature) {
 319         validateVM();
 320         List<ReferenceType> list;
 321         if (retrievedAllTypes) {
 322             list = findReferenceTypes(signature);
 323         } else {
 324             list = retrieveClassesBySignature(signature);
 325         }
 326         return Collections.unmodifiableList(list);
 327     }
 328 
 329     private static boolean isReferenceArray(String signature) {
 330         int i = signature.lastIndexOf('[');
 331         if (i > -1 && signature.charAt(i+1) == 'L') {
 332             return true;
 333         }
 334         return false;
 335     }
 336 
 337     public List<ReferenceType> classesByName(String className) {
 338         validateVM();
 339         String signature = JNITypeParser.typeNameToSignature(className);
 340         List<ReferenceType> list;
 341         if (retrievedAllTypes) {
 342            list = findReferenceTypes(signature);
 343         } else {
 344            list = retrieveClassesBySignature(signature);
 345         }
 346         // HACK: add second request to cover the case where className
 347         // is the name of an inline type. This is done only if the
 348         // first signature is either a reference type or an array
 349         // of a reference type.
 350         if (signature.length() > 1 &&
 351                 (signature.charAt(0) == 'L' || isReferenceArray((signature)))) {
 352             List<ReferenceType> listInlineTypes;
 353             signature = JNITypeParser.inlineTypeNameToSignature(className);
 354             if (retrievedAllTypes) {
 355                 listInlineTypes = findReferenceTypes(signature);
 356             } else {
 357                 listInlineTypes = retrieveClassesBySignature(signature);
 358             }
 359             if (!listInlineTypes.isEmpty()) {
 360                 list.addAll(listInlineTypes);
 361             }
 362         }
 363 
 364         return Collections.unmodifiableList(list);
 365     }
 366 
 367     public List<ReferenceType> allClasses() {
 368         validateVM();
 369 
 370         if (!retrievedAllTypes) {
 371             retrieveAllClasses();
 372         }
 373         ArrayList<ReferenceType> a;
 374         synchronized (this) {
 375             a = new ArrayList<>(typesBySignature);
 376         }
 377         return Collections.unmodifiableList(a);
 378     }
 379 
 380     /**
 381      * Performs an action for each loaded type.
 382      */
 383     public void forEachClass(Consumer<ReferenceType> action) {


< prev index next >