Examples of ClassFile


Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

    }
  }
  VariablesInfo installedVars = this.context.installedVars;
  ClassFile[] classFiles = installedVars.classFiles;
  for (int i = 0; i < classFiles.length; i++) {
    ClassFile classFile = classFiles[i];
    if (CharOperation.equals(compoundTypeName, classFile.getCompoundName())) {
      ClassFileReader binary = null;
      try {
        binary = new ClassFileReader(classFile.getBytes(), null);
      } catch (ClassFormatException e) {
        e.printStackTrace()// Should never happen since we compiled this type
        return null;
      }
      return new NameEnvironmentAnswer(binary, null /*no access restriction*/);
 
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

public boolean acceptClassFiles(ClassFile[] classFiles, char[] codeSnippetClassName) {
  int length = classFiles.length;
  byte[][] classFileBytes = new byte[length][];
  String[][] compoundNames = new String[length][];
  for (int i = 0; i < length; i++) {
    ClassFile classFile = classFiles[i];
    classFileBytes[i] = classFile.getBytes();
    char[][] classFileCompundName = classFile.getCompoundName();
    int length2 = classFileCompundName.length;
    String[] compoundName = new String[length2];
    for (int j = 0; j < length2; j++){
      compoundName[j] = new String(classFileCompundName[j]);
    }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

      generateClasspathStructure = true;
    } // else leave currentDestinationPath null
    if (currentDestinationPath != null) {
      for (int i = 0, fileCount = classFiles.length; i < fileCount; i++) {
        // retrieve the key and the corresponding classfile
        ClassFile classFile = classFiles[i];
        char[] filename = classFile.fileName();
        int length = filename.length;
        char[] relativeName = new char[length + 6];
        System.arraycopy(filename, 0, relativeName, 0, length);
        System.arraycopy(SuffixConstants.SUFFIX_class, 0, relativeName, length, 6);
        CharOperation.replace(relativeName, '/', File.separatorChar);
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

      engine.lookupEnvironment.cacheBinaryType(binaryType, null /*no access restriction*/);
    }
   
    ClassFile[] classFiles = installedVars.classFiles;
    for (int i = 0; i < classFiles.length; i++) {
      ClassFile classFile = classFiles[i];
      IBinaryType binary = null;
      try {
        binary = new ClassFileReader(classFile.getBytes(), null);
      } catch (ClassFormatException e) {
        e.printStackTrace(); // Should never happen since we compiled this type
      }
      engine.lookupEnvironment.cacheBinaryType(binary, null /*no access restriction*/);
    }
 
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

private void deployCodeSnippetClassIfNeeded(IRequestor requestor) {
  if (this.codeSnippetBinary == null) {
    // Deploy CodeSnippet class (only once)
    requestor.acceptClassFiles(
      new ClassFile[] {
        new ClassFile() {
          public byte[] getBytes() {
            return getCodeSnippetBytes();
          }
          public char[][] getCompoundName() {
            return EvaluationConstants.ROOT_COMPOUND_NAME;
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

      // otherwise an AbortCompilation is thrown in 1.5 mode since the enclosing type
      // is needed to resolve a nested type
      Util.sort(classes, new Util.Comparer() {
        public int compare(Object a, Object b) {
          if (a == b) return 0;
          ClassFile enclosing = ((ClassFile) a).enclosingClassFile;
          while (enclosing != null) {
            if (enclosing == b)
              return 1;
            enclosing = enclosing.enclosingClassFile;
          }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

        boolean hasErrors = unitResult.hasErrors();
        if (!hasErrors || proceedOnError()) {
          Collection<ClassFile> classFiles = unitResult.compiledTypes.values();
          boolean shouldAddAspectName = (buildConfig.getOutxmlName() != null);
          for (Iterator<ClassFile> iter = classFiles.iterator(); iter.hasNext();) {
            ClassFile classFile = iter.next();
            String filename = new String(classFile.fileName());
            String classname = filename.replace('/', '.');
            filename = filename.replace('/', File.separatorChar) + ".class";

            try {
              if (buildConfig.getOutputJar() == null) {
                String outfile = writeDirectoryEntry(unitResult, classFile, filename);
                getWorld().classWriteEvent(classFile.getCompoundName());
                if (environmentSupportsIncrementalCompilation) {
                  if (!classname.endsWith("$ajcMightHaveAspect")) {
                    ResolvedType type = getBcelWorld().resolve(classname);
                    if (type.isAspect()) {
                      state.recordAspectClassFile(outfile);
                    }
                  }
                }
              } else {
                writeZipEntry(classFile, filename);
              }
              if (shouldAddAspectName && !classname.endsWith("$ajcMightHaveAspect")) {
                addAspectName(classname, unitResult.getFileName());
              }
            } catch (IOException ex) {
              IMessage message = EclipseAdapterUtils.makeErrorMessage(new String(unitResult.fileName),
                  CANT_WRITE_RESULT, ex);
              handler.handleMessage(message);
            }

          }
          state.noteNewResult(unitResult);
          unitResult.compiledTypes.clear(); // free up references to AjClassFile instances
        }

        if (unitResult.hasProblems() || unitResult.hasTasks()) {
          IProblem[] problems = unitResult.getAllProblems();
          for (int i = 0; i < problems.length; i++) {
            IMessage message = EclipseAdapterUtils.makeMessage(unitResult.compilationUnit, problems[i], getBcelWorld(),
                progressListener);
            handler.handleMessage(message);
          }
        }

      }

      private String writeDirectoryEntry(CompilationResult unitResult, ClassFile classFile, String filename)
          throws IOException {
        File destinationPath = buildConfig.getOutputDir();
        if (buildConfig.getCompilationResultDestinationManager() != null) {
          destinationPath = buildConfig.getCompilationResultDestinationManager().getOutputLocationForClass(
              new File(new String(unitResult.fileName)));
        }
        String outFile;
        if (destinationPath == null) {
          outFile = new File(filename).getName();
          outFile = new File(extractDestinationPathFromSourceFile(unitResult), outFile).getPath();
        } else {
          outFile = new File(destinationPath, filename).getPath();
        }

        try {
          BufferedOutputStream os = FileUtil.makeOutputStream(new File(outFile));
          os.write(classFile.getBytes());
          os.close();
        } catch (FileNotFoundException fnfe) {
          IMessage msg = new Message("unable to write out class file: '" + filename + "' - reason: " + fnfe.getMessage(),
              IMessage.ERROR, null, new SourceLocation(new File(outFile), 0));
          handler.handleMessage(msg);
        }

        if (buildConfig.getCompilationResultDestinationManager() != null) {
          buildConfig.getCompilationResultDestinationManager().reportFileWrite(outFile,
              CompilationResultDestinationManager.FILETYPE_CLASS);
        }
        return outFile;
      }

      private void writeZipEntry(ClassFile classFile, String name) throws IOException {
        name = name.replace(File.separatorChar, '/');
        ZipEntry newEntry = new ZipEntry(name); // ??? get compression scheme right

        zos.putNextEntry(newEntry);
        zos.write(classFile.getBytes());
        zos.closeEntry();
      }

      private void addAspectName(String name, char[] fileContainingAspect) {
        BcelWorld world = getBcelWorld();
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

    compilationResult.recoveryScannerData = null; // recovery is already done

    ClassFile[] classFiles = compilationResult.getClassFiles();
    for (int i = 0, max = classFiles.length; i < max; i++) {
      // clear the classFile back pointer to the bindings
      ClassFile classFile = classFiles[i];
      // null out the classfile backpointer to a type binding
      classFile.referenceBinding = null;
      classFile.innerClassesBindings = null;
    }
  }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

  // and the installed global variable classes
  VariablesInfo installedVars = this.context.installedVars;
  if (installedVars != null) {
    ClassFile[] classFiles = installedVars.classFiles;
    for (int i = 0; i < classFiles.length; i++) {
      ClassFile classFile = classFiles[i];
      IBinaryType binary = null;
      try {
        binary = new ClassFileReader(classFile.getBytes(), null);
      } catch (ClassFormatException e) {
        e.printStackTrace(); // Should never happen since we compiled this type
      }
      compiler.lookupEnvironment.cacheBinaryType(binary, null /*no access restriction*/);
    }
 
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.ClassFile

  // retrieve the enclosing one guaranteed to be the one matching the propagated flow info
  // 1FF9ZBU: LFCOM:ALL - Local variable attributes busted (Sanity check)
  if (this.enclosingClassFile == null) {
    this.codeStream.maxFieldCount = aType.scope.referenceType().maxFieldCount;
  } else {
    ClassFile outermostClassFile = this.outerMostEnclosingClassFile();
    this.codeStream.maxFieldCount = outermostClassFile.codeStream.maxFieldCount;
  }
}
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.