make/tools/classanalyzer/src/com/sun/classanalyzer/AnnotationParser.java

Print this page




 210                 if (i < args.length) {
 211                     jdkhome = args[i++];
 212                 } else {
 213                     usage();
 214                 }
 215             } else if (arg.equals("-output")) {
 216                 output = args[i++];
 217             } else {
 218                 usage();
 219             }
 220         }
 221         if (jdkhome == null) {
 222             usage();
 223         }
 224 
 225         // parse annotation and code attribute to find all references
 226         // to Class.forName etc
 227         CodeAttributeParser.setParseCodeAttribute(true);
 228         AnnotationParser.setParseAnnotation(true);
 229 
 230         ClassPath.setJDKHome(jdkhome);
 231         ClassPath.parseAllClassFiles();
 232 
 233         PrintWriter writer = new PrintWriter(new File(output, "jdk7.depconfig"));
 234 
 235         try {
 236             for (Klass k : Klass.getAllClasses()) {
 237                 for (AnnotatedDependency dep : k.getAnnotatedDeps()) {
 238                     if (dep.isEmpty()) {
 239                         continue;
 240                     }
 241                     writer.format("# %s \n", dep.method == null ? dep.from : dep.method);
 242                     writer.format("%s\n\n", dep);
 243                 }
 244             }
 245         } finally {
 246             writer.close();
 247         }
 248 
 249         writer = new PrintWriter(new File(output, "optional.depconfig"));
 250         try {
 251             AnnotatedDependency prev = null;
 252             for (AnnotatedDependency dep : AnnotatedDependency.optionalDependencies) {
 253                 if (prev != null && !dep.equals(prev)) {
 254                     writer.format("%s\n\n", prev);




 210                 if (i < args.length) {
 211                     jdkhome = args[i++];
 212                 } else {
 213                     usage();
 214                 }
 215             } else if (arg.equals("-output")) {
 216                 output = args[i++];
 217             } else {
 218                 usage();
 219             }
 220         }
 221         if (jdkhome == null) {
 222             usage();
 223         }
 224 
 225         // parse annotation and code attribute to find all references
 226         // to Class.forName etc
 227         CodeAttributeParser.setParseCodeAttribute(true);
 228         AnnotationParser.setParseAnnotation(true);
 229 
 230         ClassPaths cpaths = ClassPaths.newJDKClassPaths(jdkhome);
 231         cpaths.parse();
 232 
 233         PrintWriter writer = new PrintWriter(new File(output, "jdk7.depconfig"));

 234         try {
 235             for (Klass k : Klass.getAllClasses()) {
 236                 for (AnnotatedDependency dep : k.getAnnotatedDeps()) {
 237                     if (dep.isEmpty()) {
 238                         continue;
 239                     }
 240                     writer.format("# %s \n", dep.method == null ? dep.from : dep.method);
 241                     writer.format("%s\n\n", dep);
 242                 }
 243             }
 244         } finally {
 245             writer.close();
 246         }
 247 
 248         writer = new PrintWriter(new File(output, "optional.depconfig"));
 249         try {
 250             AnnotatedDependency prev = null;
 251             for (AnnotatedDependency dep : AnnotatedDependency.optionalDependencies) {
 252                 if (prev != null && !dep.equals(prev)) {
 253                     writer.format("%s\n\n", prev);