public class SniperJavaPrettyPrinter extends DefaultJavaPrettyPrinter implements TokenWriterProxy.Listener
PrettyPrinter
implementation, which copies as much as possible from the origin sources
and tries to only print the changed elements.BLOCK_COMMENT_END, BLOCK_COMMENT_START, COMMENT_STAR, env, ERROR_MESSAGE_TO_STRING, ignoreImplicit, INLINE_COMMENT_START, inlineElseIf, JAVA_FILE_EXTENSION, JAVA_MODULE_DECLARATION, JAVA_PACKAGE_DECLARATION, JAVADOC_START, LINE_SEPARATOR, LOGGER, preprocessors, sourceCompilationUnit
Constructor and Description |
---|
SniperJavaPrettyPrinter(Environment env)
Creates a new
PrettyPrinter which copies origin sources and prints only changes. |
Modifier and Type | Method and Description |
---|---|
void |
calculate(CtCompilationUnit compilationUnit,
java.util.List<CtType<?>> types)
Calculates the resulting source file for a list of types.
|
protected ModelList<CtImport> |
getImports(CtCompilationUnit compilationUnit) |
static boolean |
hasImplicitAncestor(CtElement el)
Warning, not in the API, public for testing purposes
|
void |
onTokenWriterWrite(TokenType tokenType,
java.lang.String token,
CtComment comment,
java.lang.Runnable printAction)
Called for each printed token
|
java.lang.String |
printElement(CtElement element)
The sniper mode only works from JavaOutputProcessor
|
java.lang.String |
printElementSniper(CtElement element)
Warning: debug and test method only, not part of the public API
|
java.lang.String |
printTypes(CtType<?>... type)
Prints the types of one compilation unit
It always resets the printing context at the beginning of this process.
|
SniperJavaPrettyPrinter |
scan(CtElement element)
Called whenever
DefaultJavaPrettyPrinter scans/prints an element
Warning: DO not call on a cloned element. |
applyPreProcessors, enter, enterCtExpression, enterCtStatement, exit, exitCtExpression, exitCtStatement, getContext, getElementPrinterHelper, getLineNumberMapping, getLineSeparator, getPreprocessors, getPrinterTokenWriter, getResult, isMinimizeRoundBrackets, prettyprint, printCompilationUnit, printModuleInfo, printPackageInfo, reset, setIgnoreImplicit, setLineSeparator, setMinimizeRoundBrackets, setPreprocessors, setPrinterTokenWriter, toString, visitCtAnnotation, visitCtAnnotationFieldAccess, visitCtAnnotationMethod, visitCtAnnotationType, visitCtAnonymousExecutable, visitCtArrayRead, visitCtArrayTypeReference, visitCtArrayWrite, visitCtAssert, visitCtAssignment, visitCtBinaryOperator, visitCtBlock, visitCtBreak, visitCtCase, visitCtCatch, visitCtCatchVariable, visitCtCatchVariableReference, visitCtClass, visitCtCodeSnippetExpression, visitCtCodeSnippetStatement, visitCtComment, visitCtCompilationUnit, visitCtConditional, visitCtConstructor, visitCtConstructorCall, visitCtContinue, visitCtDo, visitCtEnum, visitCtEnumValue, visitCtExecutableReference, visitCtExecutableReferenceExpression, visitCtField, visitCtFieldRead, visitCtFieldReference, visitCtFieldWrite, visitCtFor, visitCtForEach, visitCtIf, visitCtImport, visitCtInterface, visitCtIntersectionTypeReference, visitCtInvocation, visitCtJavaDoc, visitCtJavaDocTag, visitCtLambda, visitCtLiteral, visitCtLocalVariable, visitCtLocalVariableReference, visitCtMethod, visitCtModule, visitCtModuleReference, visitCtModuleRequirement, visitCtNewArray, visitCtNewClass, visitCtOperatorAssignment, visitCtPackage, visitCtPackageDeclaration, visitCtPackageExport, visitCtPackageReference, visitCtParameter, visitCtParameterReference, visitCtProvidedService, visitCtReturn, visitCtStatementList, visitCtSuperAccess, visitCtSwitch, visitCtSwitchExpression, visitCtSynchronized, visitCtTextBlock, visitCtThisAccess, visitCtThrow, visitCtTry, visitCtTryWithResource, visitCtTypeAccess, visitCtTypeMemberWildcardImportReference, visitCtTypeParameter, visitCtTypeParameterReference, visitCtTypeReference, visitCtUnaryOperator, visitCtUnboundVariableReference, visitCtUsedService, visitCtVariableRead, visitCtVariableWrite, visitCtWhile, visitCtWildcardReference, visitCtYieldStatement
public SniperJavaPrettyPrinter(Environment env)
PrettyPrinter
which copies origin sources and prints only changes.public java.lang.String printTypes(CtType<?>... type)
PrettyPrinter
printTypes
in interface PrettyPrinter
printTypes
in class DefaultJavaPrettyPrinter
public void calculate(CtCompilationUnit compilationUnit, java.util.List<CtType<?>> types)
PrettyPrinter
calculate
in interface PrettyPrinter
calculate
in class DefaultJavaPrettyPrinter
public void onTokenWriterWrite(TokenType tokenType, java.lang.String token, CtComment comment, java.lang.Runnable printAction)
onTokenWriterWrite
in interface TokenWriterProxy.Listener
tokenType
- the type of TokenWriter
methodtoken
- the actual token value. It may be null for some `tokenWriterMethodName`comment
- the comment when `tokenType` == `COMMENT`printAction
- the executor of the action, we are listening for. Call it send token to outputpublic static boolean hasImplicitAncestor(CtElement el)
public java.lang.String printElement(CtElement element)
printElement
in interface PrettyPrinter
printElement
in class DefaultJavaPrettyPrinter
public java.lang.String printElementSniper(CtElement element)
public SniperJavaPrettyPrinter scan(CtElement element)
DefaultJavaPrettyPrinter
scans/prints an element
Warning: DO not call on a cloned element. Use scanClone instead.scan
in class DefaultJavaPrettyPrinter
protected ModelList<CtImport> getImports(CtCompilationUnit compilationUnit)
getImports
in class DefaultJavaPrettyPrinter
Copyright © 2007–2021 Inria. All rights reserved.