< prev index next >

test/lib/annotations/annotations/classfile/ClassfileInspector.java

Print this page




1166 
1167     /**
1168      * Get a {@code ClassFile} from its file name.
1169      *
1170      * @param name The class' file name.
1171      * @param host A class in the same package.
1172      * @return The {@code ClassFile}
1173      */
1174     public static ClassFile getClassFile(String name,
1175                                          Class<?> host)
1176         throws IOException, ConstantPoolException {
1177         final URL url = host.getResource(name);
1178         try (InputStream in = url.openStream()) {
1179             return ClassFile.read(in);
1180         }
1181     }
1182 
1183     private static class AbstractAttributeVisitor<T> implements Attribute.Visitor<Void, T> {
1184 
1185         @Override
1186         public Void visitBootstrapMethods(BootstrapMethods_attribute attr, T p) {
1187             return null;
1188         }
1189 
1190         @Override
1191         public Void visitModulePackages(ModulePackages_attribute attr, T p) {
1192             return null;
1193         }
1194 
1195         @Override
1196         public Void visitDefault(DefaultAttribute attr, T p) {
1197             return null;
1198         }
1199 
1200         @Override
1201         public Void visitAnnotationDefault(AnnotationDefault_attribute attr, T p) {
1202             return null;
1203         }
1204 
1205         @Override
1206         public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, T p) {
1207             return null;
1208         }
1209 
1210         @Override
1211         public Void visitCode(Code_attribute attr, T p) {
1212             return null;
1213         }
1214 
1215         @Override
1216         public Void visitCompilationID(CompilationID_attribute attr, T p) {
1217             return null;
1218         }
1219 
1220         @Override
1221         public Void visitConstantValue(ConstantValue_attribute attr, T p) {
1222             return null;
1223         }
1224 
1225         @Override
1226         public Void visitDeprecated(Deprecated_attribute attr, T p) {
1227             return null;
1228         }
1229 
1230         @Override
1231         public Void visitEnclosingMethod(EnclosingMethod_attribute attr, T p) {
1232             return null;
1233         }
1234 
1235         @Override
1236         public Void visitExceptions(Exceptions_attribute attr, T p) {
1237             return null;
1238         }
1239 
1240         @Override
1241         public Void visitModuleHashes(ModuleHashes_attribute attr, T p) {
1242             return null;
1243         }
1244 
1245         @Override
1246         public Void visitInnerClasses(InnerClasses_attribute attr, T p) {
1247             return null;
1248         }
1249 
1250         @Override
1251         public Void visitLineNumberTable(LineNumberTable_attribute attr, T p) {
1252             return null;
1253         }
1254 
1255         @Override
1256         public Void visitLocalVariableTable(LocalVariableTable_attribute attr, T p) {
1257             return null;
1258         }
1259 
1260         @Override
1261         public Void visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, T p) {
1262             return null;
1263         }
1264 
1265         @Override
1266         public Void visitModuleMainClass(ModuleMainClass_attribute attr, T p) {
1267             return null;
1268         }
1269 
1270         @Override
1271         public Void visitMethodParameters(MethodParameters_attribute attr, T p) {
1272             return null;
1273         }
1274 
1275         @Override
1276         public Void visitModule(Module_attribute attr, T p) {
1277             return null;
1278         }
1279 
1280         @Override
1281         public Void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, T p) {
1282             return null;
1283         }
1284 
1285         @Override
1286         public Void visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, T p) {
1287             return null;
1288         }
1289 
1290         @Override
1291         public Void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, T p) {
1292             return null;
1293         }
1294 
1295         @Override
1296         public Void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, T p) {
1297             return null;
1298         }
1299 
1300         @Override
1301         public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, T p) {





1302             return null;
1303         }
1304 
1305         @Override
1306         public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, T p) {
1307             return null;
1308         }
1309 
1310         @Override
1311         public Void visitSignature(Signature_attribute attr, T p) {
1312             return null;
1313         }
1314 
1315         @Override
1316         public Void visitSourceDebugExtension(SourceDebugExtension_attribute attr, T p) {
1317             return null;
1318         }
1319 
1320         @Override
1321         public Void visitSourceFile(SourceFile_attribute attr, T p) {
1322             return null;
1323         }
1324 
1325         @Override
1326         public Void visitSourceID(SourceID_attribute attr, T p) {
1327             return null;
1328         }
1329 
1330         @Override
1331         public Void visitStackMap(StackMap_attribute attr, T p) {
1332             return null;
1333         }
1334 
1335         @Override
1336         public Void visitStackMapTable(StackMapTable_attribute attr, T p) {
1337             return null;
1338         }
1339 
1340         @Override
1341         public Void visitSynthetic(Synthetic_attribute attr, T p) {
1342             return null;
1343         }
1344 
1345         @Override
1346         public Void visitModuleTarget(ModuleTarget_attribute attr, T p) {
1347             return null;
1348         }
1349 
1350         @Override
1351         public Void visitModuleVersion(ModuleVersion_attribute attr, T p) {
1352             return null;
1353         }
1354 




1355     }
1356 
1357     private static final Attribute.Visitor<Void, ExpectedTypeAnnotation> typeAnnoMatcher
1358             = new AbstractAttributeVisitor<ExpectedTypeAnnotation>() {
1359 
1360                 @Override
1361                 public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr,
1362                         ExpectedTypeAnnotation expected) {
1363                     if (expected.matchVisibility(true)) {
1364                         for (TypeAnnotation anno : attr.annotations) {
1365                             expected.matchAnnotation(anno);
1366                         }
1367                     }
1368 
1369                     return null;
1370                 }
1371 
1372                 @Override
1373                 public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr,
1374                         ExpectedTypeAnnotation expected) {




1166 
1167     /**
1168      * Get a {@code ClassFile} from its file name.
1169      *
1170      * @param name The class' file name.
1171      * @param host A class in the same package.
1172      * @return The {@code ClassFile}
1173      */
1174     public static ClassFile getClassFile(String name,
1175                                          Class<?> host)
1176         throws IOException, ConstantPoolException {
1177         final URL url = host.getResource(name);
1178         try (InputStream in = url.openStream()) {
1179             return ClassFile.read(in);
1180         }
1181     }
1182 
1183     private static class AbstractAttributeVisitor<T> implements Attribute.Visitor<Void, T> {
1184 
1185         @Override
1186         public Void visitDefault(DefaultAttribute attr, T p) {





1187             return null;
1188         }
1189 
1190         @Override
1191         public Void visitAnnotationDefault(AnnotationDefault_attribute attr, T p) {
1192             return null;
1193         }
1194 
1195         @Override
1196         public Void visitBootstrapMethods(BootstrapMethods_attribute attr, T p) {
1197             return null;
1198         }
1199 
1200         @Override
1201         public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, T p) {
1202             return null;
1203         }
1204 
1205         @Override
1206         public Void visitCode(Code_attribute attr, T p) {
1207             return null;
1208         }
1209 
1210         @Override
1211         public Void visitCompilationID(CompilationID_attribute attr, T p) {
1212             return null;
1213         }
1214 
1215         @Override
1216         public Void visitConstantValue(ConstantValue_attribute attr, T p) {
1217             return null;
1218         }
1219 
1220         @Override
1221         public Void visitDeprecated(Deprecated_attribute attr, T p) {
1222             return null;
1223         }
1224 
1225         @Override
1226         public Void visitEnclosingMethod(EnclosingMethod_attribute attr, T p) {
1227             return null;
1228         }
1229 
1230         @Override
1231         public Void visitExceptions(Exceptions_attribute attr, T p) {
1232             return null;
1233         }
1234 
1235         @Override





1236         public Void visitInnerClasses(InnerClasses_attribute attr, T p) {
1237             return null;
1238         }
1239 
1240         @Override
1241         public Void visitLineNumberTable(LineNumberTable_attribute attr, T p) {
1242             return null;
1243         }
1244 
1245         @Override
1246         public Void visitLocalVariableTable(LocalVariableTable_attribute attr, T p) {
1247             return null;
1248         }
1249 
1250         @Override
1251         public Void visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, T p) {
1252             return null;
1253         }
1254 
1255         @Override
1256         public Void visitMethodParameters(MethodParameters_attribute attr, T p) {
1257             return null;
1258         }
1259 
1260         @Override
1261         public Void visitModule(Module_attribute attr, T p) {
1262             return null;
1263         }
1264 
1265         @Override
1266         public Void visitModuleHashes(ModuleHashes_attribute attr, T p) {
1267             return null;
1268         }
1269 
1270         @Override
1271         public Void visitModuleMainClass(ModuleMainClass_attribute attr, T p) {
1272             return null;
1273         }
1274 
1275         @Override
1276         public Void visitModulePackages(ModulePackages_attribute attr, T p) {
1277             return null;
1278         }
1279 
1280         @Override
1281         public Void visitModuleResolution(ModuleResolution_attribute attr, T p) {
1282             return null;
1283         }
1284 
1285         @Override
1286         public Void visitModuleTarget(ModuleTarget_attribute attr, T p) {
1287             return null;
1288         }
1289 
1290         @Override
1291         public Void visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, T p) {
1292             return null;
1293         }
1294 
1295         @Override
1296         public Void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, T p) {
1297             return null;
1298         }
1299 
1300         @Override
1301         public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, T p) {
1302             return null;
1303         }
1304 
1305         @Override
1306         public Void visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, T p) {
1307             return null;
1308         }
1309 
1310         @Override
1311         public Void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, T p) {
1312             return null;
1313         }
1314 
1315         @Override
1316         public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, T p) {
1317             return null;
1318         }
1319 
1320         @Override
1321         public Void visitSignature(Signature_attribute attr, T p) {
1322             return null;
1323         }
1324 
1325         @Override
1326         public Void visitSourceDebugExtension(SourceDebugExtension_attribute attr, T p) {
1327             return null;
1328         }
1329 
1330         @Override
1331         public Void visitSourceFile(SourceFile_attribute attr, T p) {
1332             return null;
1333         }
1334 
1335         @Override
1336         public Void visitSourceID(SourceID_attribute attr, T p) {
1337             return null;
1338         }
1339 
1340         @Override
1341         public Void visitStackMap(StackMap_attribute attr, T p) {
1342             return null;
1343         }
1344 
1345         @Override
1346         public Void visitStackMapTable(StackMapTable_attribute attr, T p) {
1347             return null;
1348         }
1349 
1350         @Override
1351         public Void visitSynthetic(Synthetic_attribute attr, T p) {
1352             return null;
1353         }
1354     }
1355 
1356     private static final Attribute.Visitor<Void, ExpectedTypeAnnotation> typeAnnoMatcher
1357             = new AbstractAttributeVisitor<ExpectedTypeAnnotation>() {
1358 
1359                 @Override
1360                 public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr,
1361                         ExpectedTypeAnnotation expected) {
1362                     if (expected.matchVisibility(true)) {
1363                         for (TypeAnnotation anno : attr.annotations) {
1364                             expected.matchAnnotation(anno);
1365                         }
1366                     }
1367 
1368                     return null;
1369                 }
1370 
1371                 @Override
1372                 public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr,
1373                         ExpectedTypeAnnotation expected) {


< prev index next >