Package org.eclipse.jdt.internal.compiler.classfmt

Examples of org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader


      if (classFileStream == null) {
        return null;
      }

      try {
        ClassFileReader classFileReader =
            ClassFileReader.read(classFileStream, internalName + ".class", true);
        return new NameEnvironmentAnswer(classFileReader, null);
      } catch (IOException e) {
        return null;
      } catch (ClassFormatException e) {
View Full Code Here


      }

      InputStream openStream = null;
      try {
        openStream = resource.openStream();
        ClassFileReader classFileReader =
            ClassFileReader.read(openStream, resource.toExternalForm(), true);
        // In case insensitive file systems we might have found a resource  whose name is different
        // in case and should not be returned as an answer.
        return internalName.equals(CharOperation.charToString(classFileReader.getName()))  ?
            new NameEnvironmentAnswer(classFileReader, null) : null;
      } catch (IOException e) {
        return null;
      } catch (ClassFormatException e) {
        return null;
View Full Code Here

    return allValidClasses.get("java.lang." + ref);
  }

  private boolean hasStructuralChanges(CompiledClass mine, CompiledClass theirs) {
    try {
      ClassFileReader cfr = new ClassFileReader(theirs.getBytes(), null);
      return cfr.hasStructuralChanges(mine.getBytes());
    } catch (ClassFormatException e) {
      throw new RuntimeException("Unexpected error reading compiled class", e);
    }
  }
View Full Code Here

  }

  NameEnvironmentAnswer getNameEnvironmentAnswer() {
    if (nameEnvironmentAnswer == null) {
      try {
        ClassFileReader cfr =
            new ClassFileReader(getBytes(),
                unit.getDisplayLocation().toCharArray(), true);
        nameEnvironmentAnswer = new NameEnvironmentAnswer(cfr, null);
      } catch (ClassFormatException e) {
        throw new RuntimeException("Unexpectedly unable to parse class file", e);
      }
View Full Code Here

      try {
        URL resource = getClassLoader().getResource(binaryName + ".class");
        if (resource != null) {
          InputStream openStream = resource.openStream();
          try {
            ClassFileReader cfr = ClassFileReader.read(openStream,
                resource.toExternalForm(), true);
            return new NameEnvironmentAnswer(cfr, null);
          } finally {
            Utility.close(openStream);
          }
View Full Code Here

             * the case.
             */
            if (isBinaryType(classLoader, className)) {
              byte[] classBytes = Util.readURLAsBytes(resourceURL);
              try {
                ClassFileReader cfr = new ClassFileReader(classBytes, null);
                return new NameEnvironmentAnswer(cfr, null);
              } catch (ClassFormatException e) {
                // Ignored.
              }
            }
View Full Code Here

                                baos.write(buf, 0, count);
                            }
                            baos.flush();
                            classBytes = baos.toByteArray();
                            char[] fileName = className.toCharArray();
                            ClassFileReader classFileReader =
                                new ClassFileReader(classBytes, fileName,
                                                    true);
                            return
                                new NameEnvironmentAnswer(classFileReader);
                        }
                    } catch (IOException exc) {
View Full Code Here

            byte[] clazzBytes = byteCode.get(className);
            if (clazzBytes != null) {
                char[] fileName = className.toCharArray();
                try {
                    ClassFileReader classFileReader = new ClassFileReader(clazzBytes, fileName, true);
                    return new NameEnvironmentAnswer(classFileReader, null);
                } catch (ClassFormatException e) {
                    return null;
                }
            }

            String resourceName = className.replace('.', '/') + ".class";
            InputStream in = getClass().getClassLoader().getResourceAsStream(resourceName);
            if (in == null) {
                return null;
            }

            byte[] buffer = new byte[8192];
            ByteArrayOutputStream out = new ByteArrayOutputStream(buffer.length);
            int count;
            try {
                while ((count = in.read(buffer, 0, buffer.length)) > 0) {
                    out.write(buffer, 0, count);
                }
                out.flush();
                char[] fileName = className.toCharArray();
                ClassFileReader classFileReader = new ClassFileReader(out.toByteArray(), fileName, true);
                return new NameEnvironmentAnswer(classFileReader, null);
            } catch (IOException e) {
                return null;
            } catch (ClassFormatException e) {
                return null;
View Full Code Here

                final byte[] clazzBytes = pStore.read( pClazzName );
                if ( clazzBytes != null ) {

                    final char[] fileName = pClazzName.toCharArray();
                    try {
                        final ClassFileReader classFileReader = new ClassFileReader( clazzBytes,
                                                                                     fileName,
                                                                                     true );
                        return new NameEnvironmentAnswer( classFileReader,
                                                          null );
                    } catch ( final ClassFormatException e ) {
                        throw new RuntimeException( "ClassFormatException in loading class '" + fileName + "' with JCI." );
                    }
                }

                final InputStream is = pClassLoader.getResourceAsStream( resourceName );
                if ( is == null ) {
                    return null;
                }

                final byte[] buffer = new byte[8192];
                final ByteArrayOutputStream baos = new ByteArrayOutputStream( buffer.length );
                int count;
                try {
                    while ( (count = is.read( buffer,
                                              0,
                                              buffer.length )) > 0 ) {
                        baos.write( buffer,
                                    0,
                                    count );
                    }
                    baos.flush();
                    final char[] fileName = pClazzName.toCharArray();
                    final ClassFileReader classFileReader = new ClassFileReader( baos.toByteArray(),
                                                                                 fileName,
                                                                                 true );
                    return new NameEnvironmentAnswer( classFileReader,
                                                      null );
                } catch ( final IOException e ) {
View Full Code Here

                                baos.write(buf, 0, count);
                            }
                            baos.flush();
                            classBytes = baos.toByteArray();
                            char[] fileName = className.toCharArray();
                            ClassFileReader classFileReader =
                                new ClassFileReader(classBytes, fileName,
                                                    true);
                            return
                                new NameEnvironmentAnswer(classFileReader, null);
                        }
                    } catch (IOException exc) {
View Full Code Here

TOP

Related Classes of org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.