Example usage for org.eclipse.jdt.core.util IClassFileReader ALL

List of usage examples for org.eclipse.jdt.core.util IClassFileReader ALL

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.util IClassFileReader ALL.

Prototype

int ALL

To view the source code for org.eclipse.jdt.core.util IClassFileReader ALL.

Click Source Link

Document

This value should be used to read completely each part of a .class file.

Usage

From source file:com.inepex.classtemplater.plugin.logic.Annotation.java

License:Eclipse Public License

public Annotation(IAnnotation jdtAnnotation, ICompilationUnit compilationUnit) throws Exception {
    this.compilationUnit = compilationUnit;
    name = jdtAnnotation.getElementName();

    //default values aren't found in JDT so using AST to get them
    String[][] type = compilationUnit.findPrimaryType().resolveType(jdtAnnotation.getElementName());
    if (type != null) {
        IType annType = jdtAnnotation.getJavaProject().findType(type[0][0] + "." + type[0][1]);

        //hint to read annotation default value from a classfile
        //                  

        if (annType.getCompilationUnit() != null) {
            AnnotationASTVisitor annASTVisitor = new AnnotationASTVisitor();
            ASTParser parser = ASTParser.newParser(AST.JLS3);
            parser.setKind(ASTParser.K_COMPILATION_UNIT);
            parser.setSource(annType.getCompilationUnit());
            parser.setResolveBindings(true);
            CompilationUnit aParser = (CompilationUnit) parser.createAST(null);
            aParser.accept(annASTVisitor);
            Map<String, Object> defaultValues = annASTVisitor.getDefaultValueObjects();
            for (Entry<String, Object> entry : defaultValues.entrySet()) {
                paramObjects.put(entry.getKey(), entry.getValue());
                params.put(entry.getKey(), String.valueOf(entry.getValue()));
            }//w  w w.  j a v a  2 s. co m
        } else {
            //read annotation default value from .class file
            IClassFileReader reader = ToolFactory.createDefaultClassFileReader(annType.getClassFile(),
                    IClassFileReader.ALL);
            if (reader != null) {
                for (IMethodInfo methodInfo : reader.getMethodInfos()) {
                    if (methodInfo.getAttributes().length > 0
                            && methodInfo.getAttributes()[0] instanceof AnnotationDefaultAttribute) {
                        String name = new String(methodInfo.getName());
                        Object value = parseDefaultObjectValueFromAnnotationDefaultAttribute(
                                (AnnotationDefaultAttribute) (methodInfo.getAttributes()[0]),
                                new String(methodInfo.getDescriptor()));
                        if (value != null) {
                            paramObjects.put(name, value);
                            params.put(name, String.valueOf(value));
                        }
                    }
                    //                  System.out.println(methodInfo.getName());

                }
            }
        }
    }

    for (IMemberValuePair pair : jdtAnnotation.getMemberValuePairs()) {
        try {
            params.put(pair.getMemberName(), String.valueOf(pair.getValue()));
            paramObjects.put(pair.getMemberName(), pair.getValue());
        } catch (ClassCastException e) {
            Log.log("Could not cast value of annotation-attribute: " + name + ", " + pair.getMemberName()
                    + ". \n" + "Only string values can be used for annotation-attribute");
        }
    }
}

From source file:com.siteview.mde.internal.ui.search.dependencies.PackageFinder.java

License:Open Source License

public static Set findPackagesInClassFiles(IClassFile[] files, IProgressMonitor monitor) {
    Set packages = new HashSet();
    monitor.beginTask(MDEUIMessages.PackageFinder_taskName, files.length);
    for (int i = 0; i < files.length; i++) {
        IClassFileReader reader = ToolFactory.createDefaultClassFileReader(files[i], IClassFileReader.ALL);
        if (reader != null)
            computeReferencedTypes(reader, packages);
        monitor.worked(1);//from  w  ww.  ja v a  2s.c  o  m
    }
    monitor.done();
    return packages;
}

From source file:net.rim.ejde.internal.packaging.PackagingManager.java

License:Open Source License

/**
 * Checks if a jar file is a MidletJar created by rapc.
 *
 * @param f/*www . j  ava  2 s  . c  om*/
 * @return
 */
static public int getJarFileType(File f) {
    int type = 0x0;
    if (!f.exists()) {
        return type;
    }
    java.util.jar.JarFile jar = null;
    try {
        jar = new java.util.jar.JarFile(f, false);
        java.util.jar.Manifest manifest = jar.getManifest();
        if (manifest != null) {
            java.util.jar.Attributes attributes = manifest.getMainAttributes();
            String profile = attributes.getValue("MicroEdition-Profile");
            if (profile != null) {
                if ("MIDP-1.0".equals(profile) || "MIDP-2.0".equals(profile)) {
                    type = type | MIDLET_JAR;
                }
            }
        }
        Enumeration<JarEntry> entries = jar.entries();
        JarEntry entry;
        String entryName;
        InputStream is = null;
        IClassFileReader classFileReader = null;
        // check the attribute of the class files in the jar file
        for (; entries.hasMoreElements();) {
            entry = entries.nextElement();
            entryName = entry.getName();
            if (entryName.endsWith(IConstants.CLASS_FILE_EXTENSION_WITH_DOT)) {
                is = jar.getInputStream(entry);
                classFileReader = ToolFactory.createDefaultClassFileReader(is, IClassFileReader.ALL);
                if (isEvisceratedClass(classFileReader)) {
                    type = type | EVISCERATED_JAR;
                    break;
                }
            }
        }
    } catch (IOException e) {
        _log.error(e.getMessage());
    } finally {
        try {
            if (jar != null) {
                jar.close();
            }
        } catch (IOException e) {
            _log.error(e.getMessage());
        }
    }
    return type;
}

From source file:nz.ac.massey.cs.jquest.views.QueryView.java

License:Open Source License

private String getFullname(IJavaElement e) {
    String fullname = null;/*from   w  w w  .jav  a  2 s.  c o m*/
    try {
        if (e instanceof ICompilationUnit) {
            fullname = ".fullname=='" + ((ICompilationUnit) e).getTypes()[0].getFullyQualifiedName() + "'";
            return fullname;
        } else if (e instanceof IClassFile) {
            IClassFile icf = (IClassFile) e;
            IClassFileReader r = new ClassFileReader(icf.getBytes(), IClassFileReader.ALL);
            char[] name = r.getClassName();
            String classname = String.valueOf(name);
            classname = classname.replace("/", ".");
            fullname = ".fullname=='" + classname + "'";
            return fullname;
        } else if (e instanceof IPackageFragment) {
            fullname = ".namespace=='" + e.getElementName() + "'";
            return fullname;
        } else if (e instanceof IPackageFragmentRoot) {
            fullname = ".container=='" + e.getElementName() + "'";
            return fullname;
        } else {
            return null;
        }
    } catch (Exception e1) {
        e1.printStackTrace();
    }

    return null;
}

From source file:org.codehaus.jdt.groovy.model.GroovyClassFileWorkingCopy.java

License:Open Source License

/**
 * @see Openable#openBuffer(IProgressMonitor, Object)
 *//*from w w  w  .  j  a v  a  2  s .co m*/
protected IBuffer openBuffer(IProgressMonitor pm, Object info) throws JavaModelException {

    // create buffer
    IBuffer buffer = this.owner.createBuffer(this);
    if (buffer == null)
        return null;

    // set the buffer source
    if (buffer.getCharacters() == null) {
        IBuffer classFileBuffer = this.classFile.getBuffer();
        if (classFileBuffer != null) {
            buffer.setContents(classFileBuffer.getCharacters());
        } else {
            // Disassemble
            IClassFileReader reader = ToolFactory.createDefaultClassFileReader(this.classFile,
                    IClassFileReader.ALL);
            Disassembler disassembler = new Disassembler();
            String contents = disassembler.disassemble(reader, Util.getLineSeparator("", getJavaProject()), //$NON-NLS-1$
                    ClassFileBytesDisassembler.WORKING_COPY);
            buffer.setContents(contents);
        }
    }

    // add buffer to buffer cache
    BufferManager bufManager = getBufferManager();

    // GROOVY Change access to private member
    // old
    // bufManager.addBuffer(buffer);
    // new
    if (buffer.getContents() != null) {
        ReflectionUtils.executePrivateMethod(BufferManager.class, "addBuffer", new Class<?>[] { IBuffer.class }, //$NON-NLS-1$
                bufManager, new Object[] { buffer });
    }
    // GROOVY End

    // listen to buffer changes
    buffer.addBufferChangedListener(this);

    return buffer;
}

From source file:org.eclipse.ajdt.internal.ui.editor.quickfix.AJSerialVersionHashOperation.java

License:Open Source License

public static Long calculateSerialVersionId(ITypeBinding typeBinding, final IProgressMonitor monitor)
        throws CoreException, IOException {
    try {//w  w w  . j  a va  2s.c  o  m
        IFile classfileResource = getClassfile(typeBinding);
        if (classfileResource == null)
            return null;

        InputStream contents = classfileResource.getContents();
        try {
            IClassFileReader cfReader = ToolFactory.createDefaultClassFileReader(contents,
                    IClassFileReader.ALL);
            if (cfReader != null) {
                return calculateSerialVersionId(cfReader);
            }
        } finally {
            contents.close();
        }
        return null;
    } finally {
        if (monitor != null)
            monitor.done();
    }
}

From source file:org.eclipse.pde.internal.ui.search.dependencies.PackageFinder.java

License:Open Source License

public static Set<String> findPackagesInClassFiles(IClassFile[] files, IProgressMonitor monitor) {
    Set<String> packages = new HashSet<String>();
    monitor.beginTask(PDEUIMessages.PackageFinder_taskName, files.length);
    for (int i = 0; i < files.length; i++) {
        IClassFileReader reader = ToolFactory.createDefaultClassFileReader(files[i], IClassFileReader.ALL);
        if (reader != null)
            computeReferencedTypes(reader, packages);
        monitor.worked(1);/*w  w  w. j  ava 2s  . com*/
    }
    monitor.done();
    return packages;
}

From source file:org.eclipse.pde.tools.internal.versioning.ClassFileHelper.java

License:Open Source License

/**
 * Return a class file reader based on the given object or <code>null</code>.
 *///w  w  w .  j  a v  a 2s  . c o m
public static IClassFileReader getReader(Object object) throws CoreException {
    if (object instanceof String)
        return getClassReaderFromFile(new File((String) object));
    if (object instanceof File)
        return getClassReaderFromFile((File) object);
    if (object instanceof URL)
        return getClassReaderFromURL((URL) object);
    if (object instanceof InputStream) {
        IClassFileReader fileReader = ToolFactory.createDefaultClassFileReader((InputStream) object,
                IClassFileReader.ALL);
        return fileReader;
    } else if (object instanceof IClassFileReader)
        return (IClassFileReader) object;
    else
        // otherwise throw CoreException
        throw new CoreException(new Status(IStatus.WARNING, PLUGIN_ID, IStatus.WARNING,
                NLS.bind(Messages.JavaClassVersionCompare_unexpectedTypeMsg, object.getClass().getName()),
                null));
}

From source file:org.eclipse.pde.ui.tests.ee.ExecutionEnvironmentTests.java

License:Open Source License

/**
 * Validates the target level of a generated class file.
 * /*www .j a  v  a2 s . c  o  m*/
 * @param classfile location of class file in local file system
 * @param major expected major class file version
 */
protected void validateTargetLevel(String classfile, int major) {
    IClassFileReader reader = ToolFactory.createDefaultClassFileReader(classfile, IClassFileReader.ALL);
    assertEquals("Wrong major version", major, reader.getMajorVersion());
}

From source file:org.eclipse.pde.ui.tests.ee.ExportBundleTests.java

License:Open Source License

/**
 * Validates the target level of a generated class file.
 * /*from   w ww  .  ja va 2s  .c o  m*/
 * @param zipFileName location of archive file
 * @param zipEntryName path to class file in archive
 * @param major expected major class file version
 */
protected void validateTargetLevel(String zipFileName, String zipEntryName, int major) {
    IClassFileReader reader = ToolFactory.createDefaultClassFileReader(zipFileName, zipEntryName,
            IClassFileReader.ALL);
    assertEquals("Wrong major version", major, reader.getMajorVersion());
}