Package org.openjdk.jmh.generators.core
Class StateObjectHandler
- java.lang.Object
-
- org.openjdk.jmh.generators.core.StateObjectHandler
-
class StateObjectHandler extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classStateObjectHandler.ClassQName
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.lang.String>auxAccessorsprivate Multimap<java.lang.String,java.lang.String>auxNamesprivate java.util.Map<java.lang.String,java.lang.Boolean>auxResettableprivate java.util.Map<java.lang.String,AuxCounters.Type>auxTypeprivate Multimap<java.lang.String,java.lang.String>benchmarkArgsprivate CompilerControlPlugincompileControlprivate Identifiersidentifiersprivate java.util.Map<java.lang.String,StateObject>implicitsprivate Multimap<java.lang.String,StateObject>rootsprivate Multimap<java.lang.String,ClassInfo>specialsprivate java.util.Set<StateObject>stateObjects
-
Constructor Summary
Constructors Constructor Description StateObjectHandler(CompilerControlPlugin compileControl)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddImports(java.io.PrintWriter writer)voidbindMethods(ClassInfo holder, MethodGroup mg)private voidbindState(MethodInfo execMethod, StateObject so, ClassInfo ci)private voidcheckHelpers(MethodInfo mi, java.lang.Class<? extends java.lang.annotation.Annotation> annClass)private voidcheckParam(FieldInfo fi)static java.util.Collection<StateObject>cons(java.util.Collection<StateObject>... colls)java.lang.StringgetArgList(java.util.Collection<StateObject> sos)java.lang.StringgetArgList(MethodInfo methodInfo)java.util.Collection<java.lang.String>getAuxResets(MethodInfo method)java.util.Collection<java.lang.String>getAuxResults(MethodInfo method, java.lang.String opResName)java.lang.StringgetBenchmarkArgList(MethodInfo methodInfo)java.util.Collection<java.lang.String>getFields()java.util.Collection<java.lang.String>getHelperBlock(MethodInfo method, Level helperLevel, HelperType type)StateObjectgetImplicit(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.StringgetSpecialClassAccessor(ClassInfo pci)StategetState(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.StringgetTypeArgList(java.util.Collection<StateObject> sos)java.lang.StringgetTypeArgList(MethodInfo methodInfo)booleanhasInvocationStubs(MethodInfo method)private booleanisAuxCompatible(java.lang.String typeName)private booleanisParamTypeAcceptable(ClassInfo type)private booleanisParamValueConforming(FieldInfo fi, java.lang.String val, ClassInfo type)private static booleanisSpecialClass(ClassInfo ci)private voidresolveDependencies(MethodInfo method, ClassInfo pci, StateObject pso)Recursively resolve if there are any other states referenced through helper methods.private java.lang.StringsoDependency_Args(StateObject so)private java.lang.StringsoDependency_TypeArgs(StateObject so)private java.util.LinkedHashSet<StateObject>stateOrder(MethodInfo method, boolean reverse)static voidvalidateNoCycles(MethodInfo method)private static voidvalidateNoCyclesStep(java.util.Set<StateObjectHandler.ClassQName> alreadySeen, MethodInfo method, boolean includeHolder)static voidvalidateState(ClassInfo state)static voidvalidateStateArgs(MethodInfo e)voidwriteStateOverrides(BenchmarkGeneratorSession sess, GeneratorDestination dst)
-
-
-
Field Detail
-
compileControl
private final CompilerControlPlugin compileControl
-
identifiers
private final Identifiers identifiers
-
roots
private final Multimap<java.lang.String,StateObject> roots
-
stateObjects
private final java.util.Set<StateObject> stateObjects
-
implicits
private final java.util.Map<java.lang.String,StateObject> implicits
-
benchmarkArgs
private final Multimap<java.lang.String,java.lang.String> benchmarkArgs
-
auxNames
private final Multimap<java.lang.String,java.lang.String> auxNames
-
auxType
private final java.util.Map<java.lang.String,AuxCounters.Type> auxType
-
auxAccessors
private final java.util.Map<java.lang.String,java.lang.String> auxAccessors
-
auxResettable
private final java.util.Map<java.lang.String,java.lang.Boolean> auxResettable
-
-
Constructor Detail
-
StateObjectHandler
public StateObjectHandler(CompilerControlPlugin compileControl)
-
-
Method Detail
-
validateState
public static void validateState(ClassInfo state)
-
validateStateArgs
public static void validateStateArgs(MethodInfo e)
-
isSpecialClass
private static boolean isSpecialClass(ClassInfo ci)
-
getSpecialClassAccessor
private java.lang.String getSpecialClassAccessor(ClassInfo pci)
-
getState
public State getState(ClassInfo ci, ParameterInfo pi)
-
bindMethods
public void bindMethods(ClassInfo holder, MethodGroup mg)
-
validateNoCycles
public static void validateNoCycles(MethodInfo method)
-
validateNoCyclesStep
private static void validateNoCyclesStep(java.util.Set<StateObjectHandler.ClassQName> alreadySeen, MethodInfo method, boolean includeHolder)
-
resolveDependencies
private void resolveDependencies(MethodInfo method, ClassInfo pci, StateObject pso)
Recursively resolve if there are any other states referenced through helper methods.
-
bindState
private void bindState(MethodInfo execMethod, StateObject so, ClassInfo ci)
-
isAuxCompatible
private boolean isAuxCompatible(java.lang.String typeName)
-
checkParam
private void checkParam(FieldInfo fi)
-
isParamTypeAcceptable
private boolean isParamTypeAcceptable(ClassInfo type)
-
isParamValueConforming
private boolean isParamValueConforming(FieldInfo fi, java.lang.String val, ClassInfo type)
-
checkHelpers
private void checkHelpers(MethodInfo mi, java.lang.Class<? extends java.lang.annotation.Annotation> annClass)
-
getBenchmarkArgList
public java.lang.String getBenchmarkArgList(MethodInfo methodInfo)
-
getArgList
public java.lang.String getArgList(MethodInfo methodInfo)
-
getArgList
public java.lang.String getArgList(java.util.Collection<StateObject> sos)
-
getTypeArgList
public java.lang.String getTypeArgList(MethodInfo methodInfo)
-
getTypeArgList
public java.lang.String getTypeArgList(java.util.Collection<StateObject> sos)
-
cons
@SafeVarargs public static java.util.Collection<StateObject> cons(java.util.Collection<StateObject>... colls)
-
getHelperBlock
public java.util.Collection<java.lang.String> getHelperBlock(MethodInfo method, Level helperLevel, HelperType type)
-
hasInvocationStubs
public boolean hasInvocationStubs(MethodInfo method)
-
getInvocationSetups
public java.util.Collection<java.lang.String> getInvocationSetups(MethodInfo method)
-
getInvocationTearDowns
public java.util.Collection<java.lang.String> getInvocationTearDowns(MethodInfo method)
-
getIterationSetups
public java.util.Collection<java.lang.String> getIterationSetups(MethodInfo method)
-
getIterationTearDowns
public java.util.Collection<java.lang.String> getIterationTearDowns(MethodInfo method)
-
getRunSetups
public java.util.Collection<java.lang.String> getRunSetups(MethodInfo method)
-
getRunTearDowns
public java.util.Collection<java.lang.String> getRunTearDowns(MethodInfo method)
-
getStateInitializers
public java.util.List<java.lang.String> getStateInitializers()
-
soDependency_TypeArgs
private java.lang.String soDependency_TypeArgs(StateObject so)
-
soDependency_Args
private java.lang.String soDependency_Args(StateObject so)
-
getStateDestructors
public java.util.Collection<java.lang.String> getStateDestructors(MethodInfo method)
-
getStateGetters
public java.util.List<java.lang.String> getStateGetters(MethodInfo method)
-
stateOrder
private java.util.LinkedHashSet<StateObject> stateOrder(MethodInfo method, boolean reverse)
-
writeStateOverrides
public void writeStateOverrides(BenchmarkGeneratorSession sess, GeneratorDestination dst) throws java.io.IOException
- Throws:
java.io.IOException
-
getFields
public java.util.Collection<java.lang.String> getFields()
-
getImplicit
public StateObject getImplicit(java.lang.String label)
-
addImports
public void addImports(java.io.PrintWriter writer)
-
getAuxResets
public java.util.Collection<java.lang.String> getAuxResets(MethodInfo method)
-
getAuxResults
public java.util.Collection<java.lang.String> getAuxResults(MethodInfo method, java.lang.String opResName)
-
-