Iterable<? extends CompilationUnitTree> trees = task.parse(); task.analyze(); JCCompilationUnit tree =
text = context.document().getText(currentEmbeddingStartOffset, currentEmbeddingLength); if (JavacParser.MIME_TYPE.equals(context.mimePath())) { cut = javacTask.parse(FileObjects.memoryFileObject("", "", text)).iterator().next(); //NOI18N parsedTree = cut; sp = JavacTrees.instance(ctx).getSourcePositions();
private static boolean parseJava(List<CompilationUnitTree> trees, String src) { JavaCompiler compiler = JavacTool.create(); StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); boolean success = true; ArrayList<JavaStringObject> javaStringObjects = new ArrayList<JavaStringObject>(); javaStringObjects.add(new JavaStringObject(src)); StringWriter errors = new StringWriter(); JavaCompiler.CompilationTask task = compiler.getTask(errors, fileManager, null, null, null, javaStringObjects); JavacTaskImpl javacTask = (JavacTaskImpl) task; try { Iterable<? extends CompilationUnitTree> iterable = javacTask.parse(); for (CompilationUnitTree x : iterable) { trees.add(x); } fileManager.close(); } catch (IOException e) { success = false; } if (!errors.toString().isEmpty()) { success = false; } return success; } }
public boolean parseType( String fqn, List<CompilationUnitTree> trees, DiagnosticCollector<JavaFileObject> errorHandler ) { try { init(); Pair<JavaFileObject, String> pair = findJavaSource( fqn ); if( pair == null ) { return false; } StringWriter errors = new StringWriter(); JavaCompiler.CompilationTask task = _javac.getTask( errors, _fileManager, errorHandler, Arrays.asList( "-proc:none" ), null, Arrays.asList( pair.getFirst() ) ); JavacTaskImpl javacTask = (JavacTaskImpl)task; Iterable<? extends CompilationUnitTree> iterable = javacTask.parse(); for( CompilationUnitTree x : iterable ) { trees.add( x ); } } catch( Exception e ) { return false; } return true; }
public boolean parseText( String src, List<CompilationUnitTree> trees, Consumer<SourcePositions> sourcePositions, Consumer<DocTrees> docTrees, DiagnosticCollector<JavaFileObject> errorHandler ) { try { init(); ArrayList<JavaFileObject> javaStringObjects = new ArrayList<>(); javaStringObjects.add( new StringJavaFileObject( "sample", src ) ); StringWriter errors = new StringWriter(); JavaCompiler.CompilationTask task = _javac.getTask( errors, _fileManager, errorHandler, Arrays.asList( "-proc:none" ), null, javaStringObjects ); JavacTaskImpl javacTask = (JavacTaskImpl)task; Iterable<? extends CompilationUnitTree> iterable = javacTask.parse(); for( CompilationUnitTree x : iterable ) { trees.add( x ); } if( sourcePositions != null ) { sourcePositions.accept( Trees.instance( javacTask ).getSourcePositions() ); } if( docTrees != null ) { docTrees.accept( DocTrees.instance( javacTask ) ); } } catch( Exception e ) { return false; } return true; }
private List<Difference> processExternalCUs(Map<?, int[]> tag2Span, Set<Tree> syntheticTrees) { if (externalChanges == null) { return Collections.<Difference>emptyList(); } List<Difference> result = new LinkedList<Difference>(); for (CompilationUnitTree t : externalChanges.values()) { try { FileObject targetFile = doCreateFromTemplate(t); CompilationUnitTree templateCUT = impl.getJavacTask().parse(FileObjects.sourceFileObject(targetFile, targetFile.getParent())).iterator().next(); CompilationUnitTree importComments = GeneratorUtilities.get(this).importComments(templateCUT, templateCUT); rewrite(importComments, getTreeMaker().asRemoved(t)); //changes.put(importComments, t); StringWriter target = new StringWriter(); ModificationResult.commit(targetFile, processCurrentCompilationUnit(new DiffContext(this, templateCUT, codeForCompilationUnit(templateCUT), new PositionConverter(), targetFile, syntheticTrees, getFileObject() != null ? getCompilationUnit() : null, getFileObject() != null ? getText() : null), tag2Span), target); result.add(new CreateChange(t.getSourceFile(), target.toString())); target.close(); } catch (BadLocationException ex) { Exceptions.printStackTrace(ex); } catch (IOException ex) { Exceptions.printStackTrace(ex); } } return result; }
public static String reformat(String text, CodeStyle style, int rightMargin) { StringBuilder sb = new StringBuilder(text); try { ClassPath empty = ClassPathSupport.createClassPath(new URL[0]); ClasspathInfo cpInfo = ClasspathInfo.create(JavaPlatformManager.getDefault().getDefaultPlatform().getBootstrapLibraries(), empty, empty); JavacTaskImpl javacTask = JavacParser.createJavacTask(cpInfo, null, null, null, null, null, null, null); com.sun.tools.javac.util.Context ctx = javacTask.getContext(); JavaCompiler.instance(ctx).genEndPos = true; CompilationUnitTree tree = javacTask.parse(FileObjects.memoryFileObject("","", text)).iterator().next(); //NOI18N SourcePositions sp = JavacTrees.instance(ctx).getSourcePositions(); TokenSequence<JavaTokenId> tokens = TokenHierarchy.create(text, JavaTokenId.language()).tokenSequence(JavaTokenId.language()); for (Diff diff : Pretty.reformat(text, tokens, new TreePath(tree), sp, style, rightMargin)) { int start = diff.getStartOffset(); int end = diff.getEndOffset(); sb.delete(start, end); String t = diff.getText(); if (t != null && t.length() > 0) { sb.insert(start, t); } } } catch (IOException ioe) { } return sb.toString(); }
setPhase(phase); if (currentPhase == JavaSource.Phase.MODIFIED) getJavacTask().parse(); // Ensure proper javac initialization
parse(); // TODO would be nice to specify files needed to be parsed for (JavaFileObject file: fileObjects) { JCCompilationUnit unit = notYetEntered.remove(file);
parse(); // TODO would be nice to specify files needed to be parsed for (JavaFileObject file: fileObjects) { JCCompilationUnit unit = notYetEntered.remove(file);
private void adjustSpans(Iterable<? extends Tree> original, String code) { if (tree2Tag == null) { return; //nothing to copy } java.util.List<Tree> linearized = new LinkedList<Tree>(); if (!new Linearize().scan(original, linearized) != Boolean.TRUE) { return; //nothing to copy } try { ClassPath empty = ClassPathSupport.createClassPath(new URL[0]); ClasspathInfo cpInfo = ClasspathInfo.create(JavaPlatformManager.getDefault().getDefaultPlatform().getBootstrapLibraries(), empty, empty); JavacTaskImpl javacTask = JavacParser.createJavacTask(cpInfo, null, null, null, null, null, null, null); com.sun.tools.javac.util.Context ctx = javacTask.getContext(); JavaCompiler.instance(ctx).genEndPos = true; CompilationUnitTree tree = javacTask.parse(FileObjects.memoryFileObject("", "", code)).iterator().next(); //NOI18N SourcePositions sp = JavacTrees.instance(ctx).getSourcePositions(); ClassTree clazz = (ClassTree) tree.getTypeDecls().get(0); new CopyTags(tree, sp).scan(clazz.getModifiers().getAnnotations(), linearized); } catch (IOException ex) { Exceptions.printStackTrace(ex); } }
parse(); // TODO would be nice to specify files needed to be parsed for (JavaFileObject file: fileObjects) { JCCompilationUnit unit = notYetEntered.remove(file);
parse(); // TODO would be nice to specify files needed to be parsed for (JavaFileObject file: fileObjects) { JCCompilationUnit unit = notYetEntered.remove(file);
couplingErrors = new HashMap<ClassSymbol, StringBuilder>(); jc.skipAnnotationProcessing = true; jti.analyze(jti.enter(jti.parse(jfo))); if (persist && log.nerrors == 0) { final File classFolder = getClassFolder(jfm, clazz);
jt.parse(new JavaFileObject[0]); } catch (IOException ex) { Exceptions.printStackTrace(ex);
Iterable<? extends CompilationUnitTree> trees = currentInfo.getJavacTask().parse(new JavaFileObject[] {currentInfo.jfo}); if (trees == null) { LOGGER.log( Level.INFO, "Did not parse anything for: {0}", currentInfo.jfo.toUri()); //NOI18N
/** * Create a new CompilationUnitTree from a template. * * @param sourceRoot a source root under which the new file is created * @param path a relative path to file separated by '/' * @param kind the kind of Element to use for the template, can be null or * CLASS, INTERFACE, ANNOTATION_TYPE, ENUM, PACKAGE * @return new CompilationUnitTree created from a template * @throws IOException when an exception occurs while creating the template * @since 0.101 */ public CompilationUnitTree createFromTemplate(FileObject sourceRoot, String path, ElementKind kind) throws IOException { String[] nameComponent = FileObjects.getFolderAndBaseName(path, '/'); JavaFileObject sourceFile = FileObjects.templateFileObject(sourceRoot, nameComponent[0], nameComponent[1]); FileObject template = FileUtil.getConfigFile(copy.template(kind)); FileObject targetFile = copy.doCreateFromTemplate(template, sourceFile); CompilationUnitTree templateCUT = copy.impl.getJavacTask().parse(FileObjects.sourceFileObject(targetFile, targetFile.getParent())).iterator().next(); CompilationUnitTree importComments = GeneratorUtilities.get(copy).importComments(templateCUT, templateCUT); CompilationUnitTree result = copy.getTreeMaker().CompilationUnit(importComments.getPackageAnnotations(), sourceRoot, path, importComments.getImports(), importComments.getTypeDecls()); return result; }
aptUtils); final Iterable<? extends JavaFileObject> generated = jt.generate( StreamSupport.stream(jt.analyze(jt.enter(jt.parse(toCompile))).spliterator(), false) .filter((e) -> e.getKind().isClass() || e.getKind().isInterface()) .map((e) -> (TypeElement)e)
tuple.aptGenerated ? null : APTUtils.get(context.getRoot())); for (CompilationUnitTree cut : jt.parse(tuple.jfo)) { //TODO: should be exactly one if (units != null) { trees.add(cut);
tuple.aptGenerated ? null : APTUtils.get(context.getRoot())); for (CompilationUnitTree cut : jt.parse(tuple.jfo)) { //TODO: should be exactly one if (units != null) { Pair<CompilationUnitTree, CompileTuple> unit = Pair.<CompilationUnitTree, CompileTuple>of(cut, tuple);