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 class
StateObjectHandler.ClassQName
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.lang.String>
auxAccessors
private Multimap<java.lang.String,java.lang.String>
auxNames
private java.util.Map<java.lang.String,java.lang.Boolean>
auxResettable
private java.util.Map<java.lang.String,AuxCounters.Type>
auxType
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 Summary
Constructors Constructor Description StateObjectHandler(CompilerControlPlugin compileControl)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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.util.Collection<java.lang.String>
getAuxResets(MethodInfo method)
java.util.Collection<java.lang.String>
getAuxResults(MethodInfo method, java.lang.String opResName)
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
isAuxCompatible(java.lang.String typeName)
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.Set<StateObjectHandler.ClassQName> alreadySeen, MethodInfo method, boolean includeHolder)
static void
validateState(ClassInfo state)
static void
validateStateArgs(MethodInfo e)
void
writeStateOverrides(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)
-
-