Example usage for org.eclipse.jdt.internal.compiler.classfmt ClassFileReader read

List of usage examples for org.eclipse.jdt.internal.compiler.classfmt ClassFileReader read

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.compiler.classfmt ClassFileReader read.

Prototype

public static ClassFileReader read(String fileName, boolean fullyInitialize)
            throws ClassFormatException, java.io.IOException 

Source Link

Usage

From source file:br.com.objectos.code.StandardPackageName.java

License:Apache License

private NameEnvironmentAnswer answer(InputStream in, String filename) throws ClassFormatException, IOException {
    ClassFileReader reader = ClassFileReader.read(in, filename);
    return new NameEnvironmentAnswer(reader, null);
}

From source file:com.codenvy.ide.ext.java.server.internal.core.builder.ClasspathJar.java

License:Open Source License

public NameEnvironmentAnswer findClass(String binaryFileName, String qualifiedPackageName,
        String qualifiedBinaryFileName) {
    if (!isPackage(qualifiedPackageName))
        return null; // most common case

    try {/*  w w  w  .j a v a  2 s  .c  om*/
        ClassFileReader reader = ClassFileReader.read(this.zipFile, qualifiedBinaryFileName);
        if (reader != null) {
            if (this.accessRuleSet == null)
                return new NameEnvironmentAnswer(reader, null);
            String fileNameWithoutExtension = qualifiedBinaryFileName.substring(0,
                    qualifiedBinaryFileName.length() - SuffixConstants.SUFFIX_CLASS.length);
            return new NameEnvironmentAnswer(reader,
                    this.accessRuleSet.getViolatedRestriction(fileNameWithoutExtension.toCharArray()));
        }
    } catch (IOException | ClassFormatException e) { // treat as if class file is missing
    }
    return null;
}

From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.MatchLocator.java

License:Open Source License

public static ClassFileReader classFileReader(IType type) {
    IClassFile classFile = type.getClassFile();
    JavaModelManager manager = JavaModelManager.getJavaModelManager();
    if (classFile.isOpen())
        return (ClassFileReader) manager.getInfo(type);

    PackageFragment pkg = (PackageFragment) type.getPackageFragment();
    IPackageFragmentRoot root = (IPackageFragmentRoot) pkg.getParent();
    try {//from   ww w .j  a v a 2s . co m
        if (!root.isArchive())
            return Util.newClassFileReader(((JavaElement) type).resource());

        ZipFile zipFile = null;
        try {
            IPath zipPath = root.getPath();
            if (JavaModelManager.ZIP_ACCESS_VERBOSE)
                System.out.println("(" + Thread.currentThread()
                        + ") [MatchLocator.classFileReader()] Creating ZipFile on " + zipPath); //$NON-NLS-1$   //$NON-NLS-2$
            zipFile = manager.getZipFile(zipPath);
            String classFileName = classFile.getElementName();
            String path = Util.concatWith(pkg.names, classFileName, '/');
            return ClassFileReader.read(zipFile, path);
        } finally {
            manager.closeZipFile(zipFile);
        }
    } catch (ClassFormatException e) {
        // invalid class file: return null
    } catch (CoreException e) {
        // cannot read class file: return null
    } catch (IOException e) {
        // cannot read class file: return null
    }
    return null;
}

From source file:com.codenvy.ide.ext.java.server.internal.core.search.matching.MatchLocator.java

License:Open Source License

protected IBinaryType getBinaryInfo(ClassFile classFile, IResource resource) throws CoreException {
    BinaryType binaryType = (BinaryType) classFile.getType();
    if (classFile.isOpen())
        return (IBinaryType) binaryType.getElementInfo(); // reuse the info from the java model cache

    // create a temporary info
    IBinaryType info;//  www.  j  a v a  2 s. c  o  m
    try {
        PackageFragment pkg = (PackageFragment) classFile.getParent();
        PackageFragmentRoot root = (PackageFragmentRoot) pkg.getParent();
        if (root.isArchive()) {
            // class file in a jar
            String classFileName = classFile.getElementName();
            String classFilePath = Util.concatWith(pkg.names, classFileName, '/');
            ZipFile zipFile = null;
            try {
                zipFile = ((JarPackageFragmentRoot) root).getJar();
                info = ClassFileReader.read(zipFile, classFilePath);
            } finally {
                JavaModelManager.getJavaModelManager().closeZipFile(zipFile);
            }
        } else {
            // class file in a directory
            info = Util.newClassFileReader(resource);
        }
        if (info == null)
            throw binaryType.newNotPresentException();
        return info;
    } catch (ClassFormatException e) {
        //e.printStackTrace();
        return null;
    } catch (IOException e) {
        throw new JavaModelException(e, IJavaModelStatusConstants.IO_EXCEPTION);
    }
}

From source file:io.takari.maven.plugins.compile.jdt.classpath.ClasspathDirectory.java

License:Open Source License

@Override
public NameEnvironmentAnswer findType(String packageName, String binaryFileName,
        AccessRestriction accessRestriction) {
    try {/*  w w w .  ja  v  a  2s .  co  m*/
        String qualifiedFileName = packageName + "/" + binaryFileName;
        File classFile = new File(file, qualifiedFileName).getCanonicalFile();
        if (classFile.isFile() && matchQualifiedName(classFile, qualifiedFileName)) {
            ClassFileReader reader = ClassFileReader.read(classFile, false);
            if (reader != null) {
                return new NameEnvironmentAnswer(reader, accessRestriction);
            }
        }
    } catch (ClassFormatException | IOException e) {
        // treat as if class file is missing
    }
    return null;
}

From source file:io.takari.maven.plugins.compile.jdt.classpath.ClasspathJar.java

License:Open Source License

@Override
public NameEnvironmentAnswer findType(String packageName, String binaryFileName,
        AccessRestriction accessRestriction) {
    try {//w  ww. j av a  2  s .  c  o m
        String qualifiedFileName = packageName + "/" + binaryFileName;
        ClassFileReader reader = ClassFileReader.read(this.zipFile, qualifiedFileName);
        if (reader != null) {
            return new NameEnvironmentAnswer(reader, accessRestriction);
        }
    } catch (ClassFormatException | IOException e) {
        // treat as if class file is missing
    }
    return null;
}

From source file:io.takari.maven.plugins.compile.jdt.ClasspathDigester.java

License:Open Source License

private Map<String, byte[]> digestJar(final File file) throws IOException {
    Map<String, byte[]> digest = CACHE.get(file);
    if (digest == null) {
        digest = new HashMap<String, byte[]>();
        JarFile jar = new JarFile(file);
        try {//www . j  a  v a 2 s  . c om
            for (Enumeration<JarEntry> entries = jar.entries(); entries.hasMoreElements();) {
                JarEntry entry = entries.nextElement();
                String path = entry.getName();
                if (path.endsWith(".class")) {
                    String type = toJavaType(path);
                    try {
                        digest.put(type, digester.digest(ClassFileReader.read(jar, path)));
                    } catch (ClassFormatException e) {
                        // the class file is old for sure, according to jdt
                    }
                }
            }
        } finally {
            jar.close();
        }
        CACHE.put(file, digest);
    }

    return digest;
}

From source file:net.sf.j2s.core.builder.ClasspathJar.java

License:Open Source License

public NameEnvironmentAnswer findClass(String binaryFileName, String qualifiedPackageName,
        String qualifiedBinaryFileName) {
    if (!isPackage(qualifiedPackageName))
        return null; // most common case

    try {//from  w  w w. ja  v  a  2  s . co  m
        ClassFileReader reader = ClassFileReader.read(this.zipFile, qualifiedBinaryFileName);
        if (reader != null) {
            if (this.accessRuleSet == null)
                return new NameEnvironmentAnswer(reader, null);
            String fileNameWithoutExtension = qualifiedBinaryFileName.substring(0,
                    qualifiedBinaryFileName.length() - SuffixConstants.SUFFIX_CLASS.length);
            return new NameEnvironmentAnswer(reader,
                    this.accessRuleSet.getViolatedRestriction(fileNameWithoutExtension.toCharArray()));
        }
    } catch (IOException e) { // treat as if class file is missing
    } catch (ClassFormatException e) { // treat as if class file is missing
    }
    return null;
}

From source file:org.ant4eclipse.lib.jdt.ecj.internal.tools.loader.FileClassFileImpl.java

License:Open Source License

/**
 * {@inheritDoc}/*from  www.j  a  v a 2s  .  c o  m*/
 */
public final IBinaryType getBinaryType() {
    try {
        return ClassFileReader.read(this._classfile, true);
    } catch (Exception e) {
        // return null if an exception occurs
        e.printStackTrace();
        return null;
    }
}

From source file:org.eclipse.ajdt.internal.core.builder.ClasspathJar.java

License:Open Source License

public NameEnvironmentAnswer findClass(String binaryFileName, String qualifiedPackageName,
        String qualifiedBinaryFileName) {
    if (!isPackage(qualifiedPackageName))
        return null; // most common case

    try {//from  w w  w  . ja  v a2s .  c om
        ClassFileReader reader = ClassFileReader.read(this.zipFile, qualifiedBinaryFileName);
        if (reader != null) {
            if (this.accessRuleSet == null)
                return new NameEnvironmentAnswer(reader, null);
            return new NameEnvironmentAnswer(reader,
                    this.accessRuleSet.getViolatedRestriction(qualifiedBinaryFileName.toCharArray()));
        }
    } catch (Exception e) { // treat as if class file is missing
    }
    return null;
}