Refine search
public void acceptResult(CompilationResult result) { boolean hasErrors = false; if (result.hasProblems()) { problems = result.getProblems(); } if (!hasErrors) { ClassFile[] classFiles = result.getClassFiles(); for (int i = 0; i < classFiles.length; i++) { ClassFile classFile = classFiles[i]; char[][] compoundName = classFile.getCompoundName(); StringBuilder className = new StringBuilder(); String sep = ""; for (int j = 0; j < compoundName.length; j++) { className.append(sep); className.append(new String(compoundName[j])); sep = "."; } byte[] bytes = classFile.getBytes(); compiledClassFiles.put(className.toString(), bytes); } } } }
public void save(File outputdir) throws IOException { if (classFiles == null) return; for (ClassFile classFile : classFiles) { String fileName = new String(classFile.fileName()) + ".class"; File javaClassFile = new File(outputdir, fileName); FileOutputStream fout = new FileOutputStream(javaClassFile); try { BufferedOutputStream bos = new BufferedOutputStream(fout); bos.write(classFile.getBytes()); bos.close(); } finally { IoUtils.closeQuietly(fout); } } } }
public synchronized ClassFile acquire(SourceTypeBinding typeBinding) { for (int i = 0; i < POOL_SIZE; i++) { ClassFile classFile = this.classFiles[i]; if (classFile == null) { ClassFile newClassFile = new ClassFile(typeBinding); this.classFiles[i] = newClassFile; newClassFile.isShared = true; return newClassFile; } if (!classFile.isShared) { classFile.reset(typeBinding); classFile.isShared = true; return classFile; } } return new ClassFile(typeBinding); } public synchronized void release(ClassFile classFile) {
private static Map<String, byte[]> classes(final CompilationResult result) { final Map<String, byte[]> classes = new HashMap<String, byte[]>(); if (!result.hasErrors()) { for (final ClassFile cls : result.getClassFiles()) { final String className = CharOperation .toString(cls.getCompoundName()); classes.put(className, cls.getBytes()); } } return classes; }
private static void createProblemType(TypeDeclaration typeDeclaration, ClassFile parentClassFile, CompilationResult unitResult) { SourceTypeBinding typeBinding = typeDeclaration.binding; ClassFile classFile = ClassFile.getNewInstance(typeBinding); classFile.initialize(typeBinding, parentClassFile, true); classFile.recordInnerClasses(members[i]); classFile.recordInnerClasses(typeBinding); classFile.addFieldInfos(); } else { classFile.setForMethodInfos(); classFile.addProblemClinit(problemsCopy); classFile.addProblemConstructor(methodDecl, method, problemsCopy); } else if (method.isAbstract()) { classFile.addAbstractMethod(methodDecl, method); } else { classFile.addProblemMethod(methodDecl, method, problemsCopy); classFile.addDefaultAbstractMethods(); TypeDeclaration memberType = typeDeclaration.memberTypes[i]; if (memberType.binding != null) { ClassFile.createProblemType(memberType, classFile, unitResult); classFile.addAttributes(); unitResult.record(typeBinding.constantPoolName(), classFile);
@Override public void acceptResult(CompilationResult result) { if (result.hasErrors()) { IProblem[] problems = result.getProblems(); if (problemList == null) problemList = new ArrayList<>(problems.length); Collections.addAll(problemList, problems); } else { ClassFile[] classFiles = result.getClassFiles(); for (ClassFile classFile : classFiles) targetClassLoader.addClass(className, classFile.getBytes()); } }
if (this.binding == null) return; ClassFile.createProblemType( this, this.scope.referenceCompilationUnit().compilationResult); ClassFile classFile = ClassFile.getNewInstance(this.binding); classFile.initialize(this.binding, enclosingClassFile, false); if (this.binding.isMemberType()) { classFile.recordInnerClasses(this.binding); } else if (this.binding.isLocalType()) { enclosingClassFile.recordInnerClasses(this.binding); classFile.recordInnerClasses(this.binding); classFile.addFieldInfos(); classFile.recordInnerClasses(memberType.binding); memberType.generateCode(this.scope, classFile); classFile.setForMethodInfos(); if (this.methods != null) { for (int i = 0, max = this.methods.length; i < max; i++) { classFile.addSpecialMethods(); classFile.addAttributes(); this.scope.referenceCompilationUnit().compilationResult.record( this.binding.constantPoolName(), classFile);
/** * @see ICodeSnippetRequestor */ @Override 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]); } compoundNames[i] = compoundName; } return this.requestor.acceptClassFiles(classFileBytes, compoundNames, codeSnippetClassName == null ? null : new String(codeSnippetClassName)); } /**
@Override public void acceptResult(CompilationResult result) { String className = ((CompilationUnit) result.getCompilationUnit()).className; if (result.hasErrors()) { ClassFile[] resultClassFiles = result.getClassFiles(); for (int i = 0; i < resultClassFiles.length; i++) { units[classIdx].setCompileData(resultClassFiles[i].getBytes());
IErrorHandlingPolicy _proceedWithAllProblems = DefaultErrorHandlingPolicies.proceedWithAllProblems(); final ICompilerRequestor _function = (CompilationResult it) -> { ClassFile[] _classFiles = it.getClassFiles(); for (final ClassFile cf : _classFiles) { final Function1<char[], String> _function_1 = (char[] it_1) -> { return String.valueOf(it_1); }; result.classMap.put(IterableExtensions.join(ListExtensions.<char[], String>map(((List<char[]>)Conversions.doWrapArray(cf.getCompoundName())), _function_1), "."), cf.getBytes());
classFile.addFieldInfos(); if (this.binding.isMemberType()) { classFile.recordInnerClasses(this.binding); } else if (this.binding.isLocalType()) { enclosingClassFile.recordInnerClasses(this.binding); classFile.recordInnerClasses(this.binding); for (int i = 0, max = this.memberTypes.length; i < max; i++) { TypeDeclaration memberType = this.memberTypes[i]; classFile.recordInnerClasses(memberType.binding); memberType.generateCode(this.scope, classFile); classFile.setForMethodInfos(); if (this.methods != null) { for (int i = 0, max = this.methods.length; i < max; i++) { classFile.addSpecialMethods(); classFile.addAttributes(); this.scope.referenceCompilationUnit().compilationResult.record(this.binding.constantPoolName(), classFile); } catch (AbortType e) { if (this.binding == null)
@Override public void acceptResult(CompilationResult result) { assert this.bytes == null : "duplicate result"; //$NON-NLS-1$ ClassFile[] classFiles = result.getClassFiles(); assert classFiles.length == 1; this.bytes = classFiles[0].getBytes(); } }
protected void writeClassFileContents(ClassFile classFile, IFile file, String qualifiedFileName, boolean isTopLevelType, SourceFile compilationUnit) throws CoreException { // InputStream input = new SequenceInputStream( // new ByteArrayInputStream(classFile.header, 0, classFile.headerOffset), // new ByteArrayInputStream(classFile.contents, 0, classFile.contentsOffset)); InputStream input = new ByteArrayInputStream(classFile.getBytes()); if (file.exists()) { // Deal with shared output folders... last one wins... no collision cases detected if (JavaBuilder.DEBUG) System.out.println("Writing changed class file " + file.getName());//$NON-NLS-1$ if (!file.isDerived()) file.setDerived(true, null); file.setContents(input, true, false, null); } else { // Default implementation just writes out the bytes for the new class file... if (JavaBuilder.DEBUG) System.out.println("Writing new class file " + file.getName());//$NON-NLS-1$ file.create(input, IResource.FORCE | IResource.DERIVED, null); } } }
@Override protected void acceptSecondaryType(ClassFile classFile) { if (this.secondaryTypes != null) this.secondaryTypes.add(classFile.fileName()); }
ClassFile classFile = ClassFile.getNewInstance(typeBinding); classFile.initialize(typeBinding, null, true); classFile.recordInnerClasses(members[i]); classFile.recordInnerClasses(typeBinding); classFile.addFieldInfos(); } else { classFile.setForMethodInfos(); classFile.addProblemClinit(problemsCopy); for (int i = 0, length = methodDecls.length; i < length; i++) { AbstractMethodDeclaration methodDecl = methodDecls[i]; MethodBinding method = methodDecl.binding; if (method == null || method.isConstructor()) continue; classFile.addAbstractMethod(methodDecl, method); if (method == null) continue; if (method.isConstructor()) { classFile.addProblemConstructor(methodDecl, method, problemsCopy); } else if (method.isAbstract()) { classFile.addAbstractMethod(methodDecl, method); } else { classFile.addProblemMethod(methodDecl, method, problemsCopy); classFile.addDefaultAbstractMethods();
public void acceptResult(CompilationResult result) { if (result.hasErrors()) { for (IProblem problem: result.getErrors()) { String className = new String(problem.getOriginatingFileName()).replace("/", "."); className = className.substring(0, className.length() - 5); compiledClasses = new CompiledClass[result.getClassFiles().length]; ClassFile[] clazzFiles = result.getClassFiles(); for (int i = 0; i < clazzFiles.length; i++) { final ClassFile clazzFile = clazzFiles[i]; final char[][] compoundName = clazzFile.getCompoundName(); final StringBuffer clazzName = new StringBuffer(); for (int j = 0; j < compoundName.length; j++) { compiledClasses[i] = new CompiledClass(clazzName.toString(), clazzFile.getBytes());
@Override public void acceptResult(CompilationResult result) { if (result.hasErrors()) { IProblem[] problems = result.getProblems(); if (problemList == null) problemList = new ArrayList<>(problems.length); Collections.addAll(problemList, problems); } else { ClassFile[] classFiles = result.getClassFiles(); for (ClassFile classFile : classFiles) targetClassLoader.addClass(className, classFile.getBytes()); } }
if (this.binding == null) return; ClassFile.createProblemType( this, this.scope.referenceCompilationUnit().compilationResult); ClassFile classFile = ClassFile.getNewInstance(this.binding); classFile.initialize(this.binding, enclosingClassFile, false); if (this.binding.isMemberType()) { classFile.recordInnerClasses(this.binding); } else if (this.binding.isLocalType()) { enclosingClassFile.recordInnerClasses(this.binding); classFile.recordInnerClasses(this.binding); classFile.addFieldInfos(); classFile.recordInnerClasses(memberType.binding); memberType.generateCode(this.scope, classFile); classFile.setForMethodInfos(); if (this.methods != null) { for (int i = 0, max = this.methods.length; i < max; i++) { classFile.addSpecialMethods(); classFile.addAttributes(); this.scope.referenceCompilationUnit().compilationResult.record( this.binding.constantPoolName(), classFile);
/** * @see ICodeSnippetRequestor */ 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]); } compoundNames[i] = compoundName; } return this.requestor.acceptClassFiles(classFileBytes, compoundNames, codeSnippetClassName == null ? null : new String(codeSnippetClassName)); } /**
classFile.addFieldInfos(); if (this.binding.isMemberType()) { classFile.recordInnerClasses(this.binding); } else if (this.binding.isLocalType()) { enclosingClassFile.recordInnerClasses(this.binding); classFile.recordInnerClasses(this.binding); for (int i = 0, max = this.memberTypes.length; i < max; i++) { TypeDeclaration memberType = this.memberTypes[i]; classFile.recordInnerClasses(memberType.binding); memberType.generateCode(this.scope, classFile); classFile.setForMethodInfos(); if (this.methods != null) { for (int i = 0, max = this.methods.length; i < max; i++) { classFile.addSpecialMethods(); classFile.addAttributes(); this.scope.referenceCompilationUnit().compilationResult.record(this.binding.constantPoolName(), classFile); } catch (AbortType e) { if (this.binding == null)