com.dp4j.processors.core
Class PrivateAccessProcessor

java.lang.Object
  extended by javax.annotation.processing.AbstractProcessor
      extended by com.dp4j.processors.DProcessor
          extended by com.dp4j.processors.core.PrivateAccessProcessor
All Implemented Interfaces:
Processor

@SupportedAnnotationTypes(value={"org.junit.Test","org.testng.annotations.Test","com.dp4j.Reflect","com.dp4j.Hack","com.dp4j.AllowAcessToPrivates","com.dp4j.TestPrivates"})
public class PrivateAccessProcessor
extends DProcessor

Author:
simpatico

Field Summary
 
Fields inherited from class com.dp4j.processors.DProcessor
arrayBrac, clazz, elementUtils, encClass, javaLangClass, methTree, msgr, options, rs, symTable, thisExp, tm, trees, typeUtils, varArgsDots, verbose
 
Fields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv
 
Constructor Summary
PrivateAccessProcessor()
           
 
Method Summary
 void addAnyReflectionAccessExceptions(Node n)
           
protected  com.sun.source.tree.BlockTree blockify(com.sun.source.tree.StatementTree stmt)
           
 Set<String> getSupportedOptions()
           
 com.sun.tools.javac.code.Type getType(com.sun.tools.javac.code.Symbol s)
           
 boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCExpression exp, com.sun.source.tree.CompilationUnitTree cut, Node n)
           
 boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCFieldAccess fa, com.sun.source.tree.CompilationUnitTree cut, Node n)
           
 boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCMethodInvocation mi, com.sun.source.tree.CompilationUnitTree cut, Node n)
           
 boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCVariableDecl varDecl, com.sun.source.tree.CompilationUnitTree cut, Node n)
           
 boolean isAccessible(com.sun.tools.javac.code.Symbol s, com.sun.tools.javac.code.Symbol accessor, com.sun.source.tree.CompilationUnitTree cut, Node n)
           
protected  boolean isOnlyHandler(Set<? extends TypeElement> annotations)
          Junit or someone else might want to handle it
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCArrayAccess ifExp, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCAssign assignExp, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCBinary ifB, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCExpression ifExp, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCFieldAccess fa, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCIdent ifExp, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCLiteral ifExp, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCMethodInvocation mi, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCNewClass init, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCTypeCast cast, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
protected  com.sun.tools.javac.tree.JCTree.JCBlock processElement(com.sun.source.tree.BlockTree tree, com.sun.source.tree.CompilationUnitTree cut, com.sun.source.tree.Tree scopeTree)
           
protected  void processElement(Element e, TypeElement ann, boolean warningsOnly)
           
protected  com.sun.tools.javac.tree.JCTree.JCBlock processElement(com.sun.tools.javac.tree.JCTree.JCBlock tree, com.sun.source.tree.CompilationUnitTree cut, com.sun.source.tree.Scope validScope)
           
protected  com.sun.tools.javac.util.List<? extends com.sun.source.tree.Tree> processStmt(com.sun.source.tree.StatementTree stmt, com.sun.source.tree.CompilationUnitTree cut, com.sun.tools.javac.tree.JCTree.JCBlock encBlock, com.sun.source.tree.Scope validScope)
           
protected  List<? extends com.sun.source.tree.Tree> processStmt(StmtNode n, com.sun.source.tree.CompilationUnitTree cut, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
          required for injecting reflection statements globally, and also when not possible locally, eg.
 void reflect(com.sun.tools.javac.code.Symbol symbol, com.sun.source.tree.CompilationUnitTree cut, List<? extends com.sun.tools.javac.code.Symbol> params, Node n, com.sun.tools.javac.tree.JCTree.JCBlock encBlock, com.sun.tools.javac.util.Name accesseeVarName)
           
protected  void reflect(com.sun.tools.javac.code.Symbol s, com.sun.source.tree.CompilationUnitTree cut, Node n, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree.JCExpression> args, com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
           
 
Methods inherited from class com.dp4j.processors.DProcessor
differentArg, emptyList, getArray, getArray, getArrayDecl, getArrayDecl, getBlock, getCatches, getCatches, getDeclaredType, getElementsAnnotated, getEmptyArgsConstructor, getId, getId, getIdAfterImporting, getIdentAfterImporting, getIfNull, getIfNull, getMethodInvoc, getMethodInvoc, getMethodInvoc, getMethodInvoc, getMethodInvoc, getMethodInvoc, getMethodInvoc, getMethodsWithSameName, getNull, getParamsList, getRefMethodInvoc, getSmallerList, getSupportedSourceVersion, getTypeElement, getTypes, getVarDecl, getVarDecl, getVarDecl, getVarDecl, init, injectBefore, merge, printMsg, printVerbose, process, replace, throwException, throwExceptions, throwExceptions, toList, toString
 
Methods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, isInitialized
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PrivateAccessProcessor

public PrivateAccessProcessor()
Method Detail

getType

public com.sun.tools.javac.code.Type getType(com.sun.tools.javac.code.Symbol s)

getSupportedOptions

public Set<String> getSupportedOptions()
Specified by:
getSupportedOptions in interface Processor
Overrides:
getSupportedOptions in class DProcessor

processElement

protected void processElement(Element e,
                              TypeElement ann,
                              boolean warningsOnly)
Specified by:
processElement in class DProcessor

processElement

protected com.sun.tools.javac.tree.JCTree.JCBlock processElement(com.sun.tools.javac.tree.JCTree.JCBlock tree,
                                                                 com.sun.source.tree.CompilationUnitTree cut,
                                                                 com.sun.source.tree.Scope validScope)

processElement

protected com.sun.tools.javac.tree.JCTree.JCBlock processElement(com.sun.source.tree.BlockTree tree,
                                                                 com.sun.source.tree.CompilationUnitTree cut,
                                                                 com.sun.source.tree.Tree scopeTree)

blockify

protected com.sun.source.tree.BlockTree blockify(com.sun.source.tree.StatementTree stmt)

processStmt

protected com.sun.tools.javac.util.List<? extends com.sun.source.tree.Tree> processStmt(com.sun.source.tree.StatementTree stmt,
                                                                                        com.sun.source.tree.CompilationUnitTree cut,
                                                                                        com.sun.tools.javac.tree.JCTree.JCBlock encBlock,
                                                                                        com.sun.source.tree.Scope validScope)

processStmt

protected List<? extends com.sun.source.tree.Tree> processStmt(StmtNode n,
                                                               com.sun.source.tree.CompilationUnitTree cut,
                                                               com.sun.tools.javac.tree.JCTree.JCBlock encBlock)
required for injecting reflection statements globally, and also when not possible locally, eg. if-expr

Parameters:
n -
cut -
encBlock -
Returns:
encBlock possibly with reflection injected

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCFieldAccess fa,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCMethodInvocation mi,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCNewClass init,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCIdent ifExp,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCTypeCast cast,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCLiteral ifExp,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCBinary ifB,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCAssign assignExp,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCArrayAccess ifExp,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

processCond

protected com.sun.tools.javac.tree.JCTree.JCExpression processCond(com.sun.tools.javac.tree.JCTree.JCExpression ifExp,
                                                                   com.sun.source.tree.CompilationUnitTree cut,
                                                                   Node n,
                                                                   com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

isAccessible

public boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCMethodInvocation mi,
                            com.sun.source.tree.CompilationUnitTree cut,
                            Node n)

isAccessible

public boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCFieldAccess fa,
                            com.sun.source.tree.CompilationUnitTree cut,
                            Node n)

isAccessible

public boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCVariableDecl varDecl,
                            com.sun.source.tree.CompilationUnitTree cut,
                            Node n)

isAccessible

public boolean isAccessible(com.sun.tools.javac.tree.JCTree.JCExpression exp,
                            com.sun.source.tree.CompilationUnitTree cut,
                            Node n)

isAccessible

public boolean isAccessible(com.sun.tools.javac.code.Symbol s,
                            com.sun.tools.javac.code.Symbol accessor,
                            com.sun.source.tree.CompilationUnitTree cut,
                            Node n)

reflect

protected void reflect(com.sun.tools.javac.code.Symbol s,
                       com.sun.source.tree.CompilationUnitTree cut,
                       Node n,
                       com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree.JCExpression> args,
                       com.sun.tools.javac.tree.JCTree.JCBlock encBlock)

reflect

public void reflect(com.sun.tools.javac.code.Symbol symbol,
                    com.sun.source.tree.CompilationUnitTree cut,
                    List<? extends com.sun.tools.javac.code.Symbol> params,
                    Node n,
                    com.sun.tools.javac.tree.JCTree.JCBlock encBlock,
                    com.sun.tools.javac.util.Name accesseeVarName)

addAnyReflectionAccessExceptions

public void addAnyReflectionAccessExceptions(Node n)

isOnlyHandler

protected boolean isOnlyHandler(Set<? extends TypeElement> annotations)
Junit or someone else might want to handle it

Overrides:
isOnlyHandler in class DProcessor
Parameters:
annotations -
Returns:
true if it's the only handler for all the given annotations.


Copyright © 2011. All Rights Reserved.