/** * Parse the class file into a JavaClass object. If successful, the new * JavaClass is entered into the Repository. * * @return the parsed JavaClass * @throws IOException * if the class cannot be parsed */ public JavaClass parse() throws IOException { JavaClass jclass = classParser.parse(); Repository.addClass(jclass); return jclass; } }
private boolean embeddedNameMismatch(ZipFile zipInputFile, ZipEntry ze) throws IOException { InputStream zipIn = zipInputFile.getInputStream(ze); String name = ze.getName(); JavaClass j = new ClassParser(zipIn, name).parse(); zipIn.close(); String className = j.getClassName(); String computedFileName = ClassName.toSlashedClassName(className)+".class"; if (name.charAt(0) == '1') { System.out.println(name); System.out.println(" " + className); } if (computedFileName.equals(name)) { return false; } System.out.println("In " + name + " found " + className); return true; }
JavaClass javaClass = classParser.parse(); parsedClass = true;
public RegenerateClassFeatures execute() throws IOException { bugCollection.clearClassFeatures(); ArrayList<JavaClass> classList = new ArrayList<>(); try (ZipFile zipFile = new ZipFile(jarFile)){ // Add all classes to repository (for hierarchy queries) Enumeration<? extends ZipEntry> entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); if (!entry.getName().endsWith(".class")) { continue; } ClassParser parser = new ClassParser(zipFile.getInputStream(entry), entry.getName()); JavaClass javaClass = parser.parse(); Repository.addClass(javaClass); classList.add(javaClass); } } for (JavaClass javaClass : classList) { ClassFeatureSet classFeatureSet = new ClassFeatureSet().initialize(javaClass); bugCollection.setClassFeatureSet(classFeatureSet); } return this; }
private static void printClass(ClassParser parser) throws IOException { JavaClass java_class; java_class = parser.parse(); if (superClasses) { try { while (java_class != null) { System.out.print(java_class.getClassName() + " "); java_class = java_class.getSuperClass(); } } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); } System.out.println(); return; } if (constants || code) { System.out.println(java_class); // Dump the contents } if (constants) { System.out.println(java_class.getConstantPool()); } if (code) { printCode(java_class.getMethods()); } }
doc.get(QueryBuilder.PATH)); StringWriter xout = new StringWriter(); getContent(xout, fout, classparser.parse(), defs, refs, full); String xref = xout.toString();
@Override public JavaClass analyze(IAnalysisCache analysisCache, ClassDescriptor descriptor) throws CheckedAnalysisException { try { ClassData classData = analysisCache.getClassAnalysis(ClassData.class, descriptor); JavaClass javaClass = new ClassParser(classData.getInputStream(), descriptor.toResourceName()).parse(); // Make sure that the JavaClass object knows the repository // it was loaded from. javaClass.setRepository(Repository.getRepository()); if (DEBUG_MISSING_CLASSES && !(javaClass.getRepository() instanceof AnalysisCacheToRepositoryAdapter)) { throw new IllegalStateException("this should not happen"); } return javaClass; } catch (RuntimeException e) { throw new RuntimeException("Unable to parse classfile for " + descriptor, e); } catch (IOException e) { throw new ResourceNotFoundException(descriptor.toResourceName(), e); } }
JavaClass jclass = new ClassParser(argv[0]).parse(); ClassGen classGen = new ClassGen(jclass);
/** * Returns the Bcel Class corresponding to the given class filename * * @param filename * the absolute file name of the class * @return the Bcel Class. * @throws IOException */ public static JavaClass getBcelClass(final String filename) throws IOException { final ClassParser parser = new ClassParser(filename); return parser.parse(); }
/** * Creates a new instance of JavaClass based on the given resource. * The resFileName is only used for logging purposes. * @param resource the class file * @param resFileName the name of the class file * @return a JavaClass instance * @throws IOException if an IO error occurs */ public JavaClass createJavaClass(InputStream resource, String resFileName) throws IOException { ClassParser classParser = new ClassParser(resource, resFileName); return classParser.parse(); }
/** * Parse the class file into a JavaClass object. If succesful, the new * JavaClass is entered into the Repository. * * @return the parsed JavaClass * @throws IOException * if the class cannot be parsed */ public JavaClass parse() throws IOException { JavaClass jclass = classParser.parse(); Repository.addClass(jclass); return jclass; } }
private static JavaClass parseClass(Class<?> clazz) { String pathToClassFile = "/" + clazz.getName().replace('.', '/') + ".class"; InputStream resourceAsStream = clazz.getResourceAsStream(pathToClassFile); if (resourceAsStream == null) { return null; } try { return new ClassParser(resourceAsStream, pathToClassFile).parse(); } catch (IOException e) { throw new RuntimeException("Error during analyzing byte code of the class " + clazz.getName(), e); } finally { StreamUtil.closeNoThrow(resourceAsStream); } }
private JavaClass parseClass(Class<?> clazz) { String pathToClassFile = "/" + clazz.getName().replace('.', '/') + ".class"; InputStream resourceAsStream = clazz.getResourceAsStream(pathToClassFile); if (resourceAsStream == null) { return null; } try { return new ClassParser(resourceAsStream, pathToClassFile).parse(); } catch (IOException e) { throw new RuntimeException("Error during analyzing byte code of the class " + clazz.getName(), e); } finally { StreamUtil.closeNoThrow(resourceAsStream); } }
static JavaClass getJavaClass(final String name) throws ClassNotFoundException, IOException { JavaClass java_class; if ((java_class = Repository.lookupClass(name)) == null) { java_class = new ClassParser(name).parse(); // May throw IOException } return java_class; } }
private boolean isConcreteClass(File file) throws Exception { ClassParser parser = new ClassParser(file.getAbsolutePath()); JavaClass javaClass = parser.parse(); return !javaClass.isAbstract() && !javaClass.isInterface(); }
private void find(final Path path) throws IOException { final Path name = path.getFileName(); if (name != null && matcher.matches(name)) { try (final InputStream inputStream = Files.newInputStream(path)) { final ClassParser parser = new ClassParser(inputStream, name.toAbsolutePath().toString()); final JavaClass jc = parser.parse(); Assert.assertNotNull(jc); } } }
/** Default main method */ public static void main(String[] argv) throws Exception { JavaClass java_class; String name = argv[0]; if((java_class = Repository.lookupClass(name)) == null) java_class = new ClassParser(name).parse(); // May throw IOException BCELifier bcelifier = new BCELifier(java_class, System.out); bcelifier.start(); } }
public void testConvertJavaUtil() throws Exception { final File outputDir = new File("target/test-output/html"); if (!outputDir.mkdirs()) { // either was not created or already existed Assert.assertTrue(outputDir.isDirectory()); // fail if missing } try (FileInputStream file = new FileInputStream("target/test-classes/Java8Example.class")) { final ClassParser parser = new ClassParser(file, "Java8Example.class"); new Class2HTML(parser.parse(), outputDir.getAbsolutePath() + "/"); } } }
private void testJar(final File file) throws Exception { System.out.println("parsing " + file); try (JarFile jar = new JarFile(file)) { final Enumeration<JarEntry> en = jar.entries(); while (en.hasMoreElements()) { final JarEntry e = en.nextElement(); final String name = e.getName(); if (name.endsWith(".class")) { // System.out.println("parsing " + name); try (InputStream in = jar.getInputStream(e)) { final ClassParser parser = new ClassParser(in, name); final JavaClass jc = parser.parse(); compare(jc, jar.getInputStream(e), name); } } } } }
@Override public JavaClass analyze(IAnalysisCache analysisCache, ClassDescriptor descriptor) throws CheckedAnalysisException { try { ClassData classData = analysisCache.getClassAnalysis(ClassData.class, descriptor); JavaClass javaClass = new ClassParser(classData.getInputStream(), descriptor.toResourceName()).parse(); // Make sure that the JavaClass object knows the repository // it was loaded from. javaClass.setRepository(Repository.getRepository()); if (DEBUG_MISSING_CLASSES && !(javaClass.getRepository() instanceof AnalysisCacheToRepositoryAdapter)) { throw new IllegalStateException("this should not happen"); } return javaClass; } catch (RuntimeException e) { throw new RuntimeException("Unable to parse classfile for " + descriptor, e); } catch (IOException e) { throw new ResourceNotFoundException(descriptor.toResourceName(), e); } }