CompilationUnit cu = JavaParser.parse(reader, false /*considerComments*/); String codeWithoutComments = cu.toString();
import java.io.ByteArrayInputStream; import com.github.javaparser.JavaParser; import com.github.javaparser.ParseException; import com.github.javaparser.ast.CompilationUnit; public static void main(String[] args) throws ParseException { String java = new String("public class ThisIsANonWellFormattedJavaClass {public static void main(String[] args){}}"); CompilationUnit cu = JavaParser.parse(new ByteArrayInputStream(java.getBytes())); System.out.println(cu.toString()); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((toString() == null) ? 0 : unit.toString().hashCode()); return result; }
@Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((toString() == null) ? 0 : unit.toString().hashCode()); return result; }
public static String rewrite(final CompilationUnit unit, final AST ast) { final IDocument document = new Document(unit.toString()); final ASTRewrite rewriter = ASTRewrite.create(ast); final TextEdit edits = rewriter.rewriteAST(document, null); try { edits.apply(document); //log.debug("{}", formatted); return formatCode(document); } catch (BadLocationException e) { log.error("Error creating HippoBean", e); } return null; }
public static String rewrite(final CompilationUnit unit, final AST ast) { final IDocument document = new Document(unit.toString()); final ASTRewrite rewriter = ASTRewrite.create(ast); final TextEdit edits = rewriter.rewriteAST(document, null); try { edits.apply(document); final String formatted = formatCode(document); //log.debug("{}", formatted); return formatted; } catch (BadLocationException e) { log.error("Error creating HippoBean", e); } return null; }
/** * Add text to class comment (javadoc) node. If text already exists it will not be added * * @param path path of of an class * @param text text to add * @return rewritten source (with text node added to the javadoc) */ @SuppressWarnings("unchecked") public static void addClassJavaDoc(final Path path, final String text) { final CompilationUnit unit = getCompilationUnit(path); final String code = addClassJavaDoc(unit.toString(), text); GlobalUtils.writeToFile(formatCode(code), path); }
@Test public void test_InnerClass_Conflict_Handling() { String original = // "package org.kissmda.test.junit;\n" // + "public class OuterClassName {\n" + " private another.InnerClazz anotherClazz;\n" + " private static class InnerClazz {}\n" + " private InnerClazz innerClazz;\n" // + "}"; CompilationUnit cu = buildAndPackCompilationUnit(original); logger.info(cu.toString()); assertEquals("package org.kissmda.test.junit;\n" // + "public class OuterClassName {\n" + " private another.InnerClazz anotherClazz;\n" + "private static class InnerClazz {\n" + " }\n" + " private InnerClazz innerClazz;\n" // + "}", cu.toString().trim()); }
/** * Return this {@link JavaType} file as a String */ @Override public String toString() { Document document = new Document(this.document.get()); try { @SuppressWarnings("rawtypes") Map options = JavaCore.getOptions(); options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_7); options.put(CompilerOptions.OPTION_Encoding, "UTF-8"); TextEdit edit = unit.rewrite(document, options); edit.apply(document); } catch (Exception e) { throw new ParserException("Could not modify source: " + unit.toString(), e); } return Formatter.format(document.get()); }
@Test public void test_Types_From_The_Same_Project() { String original = // "package org.kissmda.test.junit; " // + " public class ClazzName {" // + " public void doSomething(org.kissmda.test.junit.Name values){ }" // + " }"; CompilationUnit cu = buildAndPackCompilationUnit(original); assertEquals("package org.kissmda.test.junit;\n" // + "public class ClazzName {\n" // + " public void doSomething( Name values){\n" // + " }\n" // + "}", cu.toString().trim()); }
/** * Generate general Exception. This will be called by Unchecked and Checked * Exception generation. * * @param clazz * UML class * @return JDT compilation unit */ private CompilationUnit generateException(Classifier clazz) { AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); generatePackage(clazz, ast, cu); TypeDeclaration td = generateClass(clazz, ast, cu); generateSerialVersionUID(clazz, ast, td); generateMethods(clazz, ast, td); generateConstructors(clazz, ast, td); logger.log(Level.INFO, "Compilation unit: \n\n" + cu.toString()); return cu; }
@Test public void test_Parameterized_Methods() { String original = // "package org.kissmda.test.junit; " // + "import java.util.Collection;" // + "public abstract class ClazzName" // + "{" // + " public <T> java.util.List<T> asList(java.util.Collection<T> values){return null;};" // + "}"; CompilationUnit cu = buildAndPackCompilationUnit(original); assertEquals("package org.kissmda.test.junit;\n" + "import java.util.Collection;\n" + "import java.util.List;\n" + "public abstract class ClazzName {\n" + " public <T>List<T> asList( Collection<T> values){\n" + " return null;\n" + " }\n" + "}", cu.toString().trim()); }
@Test public void test_Do_Not_Import_Java_Lang_Classes() { String original = // "package org.kissmda.test.junit; " // + "import java.util.Collection;" // + "public abstract class ClazzName extends java.util.Collection" // + "{" // + " public abstract java.util.List<java.lang.Integer> asList(java.util.Collection<java.lang.Integer> values);" // + "}"; CompilationUnit cu = buildAndPackCompilationUnit(original); assertEquals( "package org.kissmda.test.junit;\n" + "import java.util.Collection;\n" + "import java.util.List;\n" + "public abstract class ClazzName extends Collection {\n" + " public abstract List<Integer> asList( Collection<Integer> values);\n}", cu.toString().trim()); }
private CompilationUnit buildAndPackCompilationUnit(String java) { ASTParser parser = ASTParser.newParser(AST.JLS4); parser.setSource(java.toCharArray()); CompilationUnit cu = (CompilationUnit) parser.createAST(null); logger.info(cu.toString()); new ImportPacker(cu).pack(); return cu; }
@Test public void test_Parameterized_Map_Types() { String original = // "package org.kissmda.test.junit; " // + "import java.util.Collection;" // + "public abstract class ClazzName extends java.util.Collection" // + "{" // + " public java.util.Map<java.lang.Integer, java.util.List<?>> asMap(java.util.Collection<java.lang.Integer> values);" // + "}"; CompilationUnit cu = buildAndPackCompilationUnit(original); assertEquals( "package org.kissmda.test.junit;\n" + "import java.util.Collection;\n" + "import java.util.List;\n" + "import java.util.Map;\n" + "public abstract class ClazzName extends Collection {\n" + " public Map<Integer,List<?>> asMap( Collection<Integer> values);\n" + "}", cu.toString().trim()); }
@Override public String toUnformattedString() { Document documentLocal = new Document(this.document.get()); try { Map<String, String> options = JDTOptions.getJDTOptions(); TextEdit edit = unit.rewrite(documentLocal, options); edit.apply(documentLocal); } catch (Exception e) { throw new ParserException("Could not modify source: " + unit.toString(), e); } return documentLocal.get(); }
@Test public void testGeneratePackage() { AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); interfaceGenerator.generatePackage(clazz, ast, cu); String onlyPackage = cu.toString(); String expectedResult = "package de.crowdcode.kissmda.testapp.components;\n"; boolean isInside = onlyPackage.contains(expectedResult); assertTrue(isInside); }
@Test public void testGeneratePackage() { AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); enumGenerator.generatePackage(clazz, ast, cu); String onlyPackage = cu.toString(); String expectedResult = "package de.crowdcode.kissmda.testapp.components;\n"; boolean isInside = onlyPackage.contains(expectedResult); assertTrue(isInside); }
/** * Return this {@link JavaType} file as a String */ @Override public String toString() { Document document = new Document(this.document.get()); try { TextEdit edit = unit.rewrite(document, null); edit.apply(document); } catch (Exception e) { throw new ParserException("Could not modify source: " + unit.toString(), e); } return Formatter.format(document.get()); }
@Test public void testGenerateEnum() { AST ast = AST.newAST(AST.JLS3); CompilationUnit cu = ast.newCompilationUnit(); enumGenerator.generateEnum(clazz, ast, cu); assertEquals("public enum Company {}\n", cu.toString()); }