class StateObjectHandler
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.lang.String> |
auxAccessors |
private Multimap<java.lang.String,java.lang.String> |
auxNames |
private Multimap<java.lang.String,java.lang.String> |
benchmarkArgs |
private CompilerControlPlugin |
compileControl |
private Identifiers |
identifiers |
private java.util.Map<java.lang.String,StateObject> |
implicits |
private Multimap<java.lang.String,StateObject> |
roots |
private Multimap<java.lang.String,ClassInfo> |
specials |
private java.util.Set<StateObject> |
stateObjects |
Constructor and Description |
---|
StateObjectHandler(CompilerControlPlugin compileControl) |
Modifier and Type | Method and Description |
---|---|
void |
addImports(java.io.PrintWriter writer) |
void |
bindMethods(ClassInfo holder,
MethodGroup mg) |
private void |
bindState(MethodInfo execMethod,
StateObject so,
ClassInfo ci) |
private void |
checkHelpers(MethodInfo mi,
java.lang.Class<? extends java.lang.annotation.Annotation> annClass) |
private void |
checkParam(FieldInfo fi) |
static java.util.Collection<StateObject> |
cons(java.util.Collection<StateObject>... colls) |
java.lang.String |
getArgList(java.util.Collection<StateObject> sos) |
java.lang.String |
getArgList(MethodInfo methodInfo) |
java.lang.String |
getAuxResultAccessor(MethodInfo method,
java.lang.String name) |
java.util.Collection<java.lang.String> |
getAuxResultNames(MethodInfo method) |
java.lang.String |
getBenchmarkArgList(MethodInfo methodInfo) |
java.util.Collection<java.lang.String> |
getFields() |
java.util.Collection<java.lang.String> |
getHelperBlock(MethodInfo method,
Level helperLevel,
HelperType type) |
StateObject |
getImplicit(java.lang.String label) |
java.util.Collection<java.lang.String> |
getInvocationSetups(MethodInfo method) |
java.util.Collection<java.lang.String> |
getInvocationTearDowns(MethodInfo method) |
java.util.Collection<java.lang.String> |
getIterationSetups(MethodInfo method) |
java.util.Collection<java.lang.String> |
getIterationTearDowns(MethodInfo method) |
java.util.Collection<java.lang.String> |
getRunSetups(MethodInfo method) |
java.util.Collection<java.lang.String> |
getRunTearDowns(MethodInfo method) |
private java.lang.String |
getSpecialClassAccessor(ClassInfo pci) |
State |
getState(ClassInfo ci,
ParameterInfo pi) |
java.util.Collection<java.lang.String> |
getStateDestructors(MethodInfo method) |
java.util.List<java.lang.String> |
getStateGetters(MethodInfo method) |
java.util.List<java.lang.String> |
getStateInitializers() |
java.lang.String |
getTypeArgList(java.util.Collection<StateObject> sos) |
java.lang.String |
getTypeArgList(MethodInfo methodInfo) |
boolean |
hasInvocationStubs(MethodInfo method) |
private boolean |
isParamTypeAcceptable(ClassInfo type) |
private boolean |
isParamValueConforming(FieldInfo fi,
java.lang.String val,
ClassInfo type) |
private static boolean |
isSpecialClass(ClassInfo ci) |
private void |
resolveDependencies(MethodInfo method,
ClassInfo pci,
StateObject pso)
Recursively resolve if there are any other states referenced through helper methods.
|
private java.lang.String |
soDependency_Args(StateObject so) |
private java.lang.String |
soDependency_TypeArgs(StateObject so) |
private java.util.LinkedHashSet<StateObject> |
stateOrder(MethodInfo method,
boolean reverse) |
static void |
validateNoCycles(MethodInfo method) |
private static void |
validateNoCyclesStep(java.util.List<java.lang.String> states,
MethodInfo method,
boolean includeHolder) |
static void |
validateState(ClassInfo state) |
static void |
validateStateArgs(MethodInfo e) |
void |
writeStateOverrides(BenchmarkGeneratorSession sess,
GeneratorDestination dst) |
private final CompilerControlPlugin compileControl
private final Identifiers identifiers
private final Multimap<java.lang.String,StateObject> roots
private final java.util.Set<StateObject> stateObjects
private final java.util.Map<java.lang.String,StateObject> implicits
private final Multimap<java.lang.String,java.lang.String> benchmarkArgs
private final Multimap<java.lang.String,java.lang.String> auxNames
private final java.util.Map<java.lang.String,java.lang.String> auxAccessors
public StateObjectHandler(CompilerControlPlugin compileControl)
public static void validateState(ClassInfo state)
public static void validateStateArgs(MethodInfo e)
private static boolean isSpecialClass(ClassInfo ci)
private java.lang.String getSpecialClassAccessor(ClassInfo pci)
public State getState(ClassInfo ci, ParameterInfo pi)
public void bindMethods(ClassInfo holder, MethodGroup mg)
public static void validateNoCycles(MethodInfo method)
private static void validateNoCyclesStep(java.util.List<java.lang.String> states, MethodInfo method, boolean includeHolder)
private void resolveDependencies(MethodInfo method, ClassInfo pci, StateObject pso)
private void bindState(MethodInfo execMethod, StateObject so, ClassInfo ci)
private void checkParam(FieldInfo fi)
private boolean isParamTypeAcceptable(ClassInfo type)
private boolean isParamValueConforming(FieldInfo fi, java.lang.String val, ClassInfo type)
private void checkHelpers(MethodInfo mi, java.lang.Class<? extends java.lang.annotation.Annotation> annClass)
public java.lang.String getBenchmarkArgList(MethodInfo methodInfo)
public java.lang.String getArgList(MethodInfo methodInfo)
public java.lang.String getArgList(java.util.Collection<StateObject> sos)
public java.lang.String getTypeArgList(MethodInfo methodInfo)
public java.lang.String getTypeArgList(java.util.Collection<StateObject> sos)
public static java.util.Collection<StateObject> cons(java.util.Collection<StateObject>... colls)
public java.util.Collection<java.lang.String> getHelperBlock(MethodInfo method, Level helperLevel, HelperType type)
public boolean hasInvocationStubs(MethodInfo method)
public java.util.Collection<java.lang.String> getInvocationSetups(MethodInfo method)
public java.util.Collection<java.lang.String> getInvocationTearDowns(MethodInfo method)
public java.util.Collection<java.lang.String> getIterationSetups(MethodInfo method)
public java.util.Collection<java.lang.String> getIterationTearDowns(MethodInfo method)
public java.util.Collection<java.lang.String> getRunSetups(MethodInfo method)
public java.util.Collection<java.lang.String> getRunTearDowns(MethodInfo method)
public java.util.List<java.lang.String> getStateInitializers()
private java.lang.String soDependency_TypeArgs(StateObject so)
private java.lang.String soDependency_Args(StateObject so)
public java.util.Collection<java.lang.String> getStateDestructors(MethodInfo method)
public java.util.List<java.lang.String> getStateGetters(MethodInfo method)
private java.util.LinkedHashSet<StateObject> stateOrder(MethodInfo method, boolean reverse)
public void writeStateOverrides(BenchmarkGeneratorSession sess, GeneratorDestination dst) throws java.io.IOException
java.io.IOException
public java.util.Collection<java.lang.String> getFields()
public StateObject getImplicit(java.lang.String label)
public java.util.Collection<java.lang.String> getAuxResultNames(MethodInfo method)
public java.lang.String getAuxResultAccessor(MethodInfo method, java.lang.String name)
public void addImports(java.io.PrintWriter writer)