public class ValueInjector
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.Class,StringConverter> |
converters
A mapping between desired types and suitable @
StringConverter. |
private static ValueInjector |
instance
A default instance
|
| Constructor and Description |
|---|
ValueInjector() |
| Modifier and Type | Method and Description |
|---|---|
<T> void |
addConverter(java.lang.Class<T> clazz,
StringConverter<T> conv)
Registers the given converter for the specified class.
|
private java.lang.Object |
convert(ProofScriptArgument<?> meta,
java.lang.String val) |
static ValueInjector |
createDefault()
Returns a fresh instance of a
ValueInjector with the support
for basic primitive data types. |
<T> StringConverter<T> |
getConverter(java.lang.Class<T> clazz)
Finds a converter for the given class.
|
static ValueInjector |
getInstance()
Returns the default instance of a
ValueInjector
Use with care. |
private java.util.Map<java.lang.String,java.lang.Object> |
getStringMap(java.lang.Object obj,
ProofScriptArgument<?> vararg) |
<T> T |
inject(ProofScriptCommand<?> command,
T obj,
java.util.Map<java.lang.String,java.lang.String> arguments)
Injects the converted version of the given
arguments in the given obj. |
private void |
injectIntoField(ProofScriptArgument<?> meta,
java.util.Map<java.lang.String,java.lang.String> args,
java.lang.Object obj) |
static <T> T |
injection(ProofScriptCommand<?> command,
T obj,
java.util.Map<java.lang.String,java.lang.String> arguments)
Injects the given
arguments in the obj. |
private static ValueInjector instance
getInstance()private java.util.Map<java.lang.Class,StringConverter> converters
public static <T> T injection(ProofScriptCommand<?> command, T obj, java.util.Map<java.lang.String,java.lang.String> arguments) throws ArgumentRequiredException, InjectionReflectionException, NoSpecifiedConverterException, ConversionException
arguments in the obj.
For more details see inject(ProofScriptCommand, Object, Map)T - an arbitrary typecommand - a proof script commandobj - a parameter class with annotationarguments - a non-null map of string pairsobjArgumentRequiredException - a required argument was not given in argumentsInjectionReflectionException - an access on some reflection methods occurredNoSpecifiedConverterException - unknown type for the current converter mapConversionException - an converter could not translate the given value in
public static ValueInjector getInstance()
ValueInjector
Use with care. No multi-threading.createDefault()public static ValueInjector createDefault()
ValueInjector with the support
for basic primitive data types.public <T> T inject(ProofScriptCommand<?> command, T obj, java.util.Map<java.lang.String,java.lang.String> arguments) throws ConversionException, InjectionReflectionException, NoSpecifiedConverterException, ArgumentRequiredException
arguments in the given obj.T - type safetycommand - a proof script commandobj - a non-null instance of a parameter class (with annotation)arguments - a non-null string mapobjArgumentRequiredException - a required argument was not given in argumentsInjectionReflectionException - an access on some reflection methods occurredNoSpecifiedConverterException - unknown type for the current converter mapConversionException - an converter could not translate the given value
in Option,
Flagprivate java.util.Map<java.lang.String,java.lang.Object> getStringMap(java.lang.Object obj,
ProofScriptArgument<?> vararg)
throws InjectionReflectionException
InjectionReflectionExceptionprivate void injectIntoField(ProofScriptArgument<?> meta, java.util.Map<java.lang.String,java.lang.String> args, java.lang.Object obj) throws InjectionReflectionException, ArgumentRequiredException, ConversionException, NoSpecifiedConverterException
private java.lang.Object convert(ProofScriptArgument<?> meta, java.lang.String val) throws NoSpecifiedConverterException, ConversionException
public <T> void addConverter(java.lang.Class<T> clazz,
StringConverter<T> conv)
T - an arbitrary typeclazz - a classconv - a converter for the given classpublic <T> StringConverter<T> getConverter(java.lang.Class<T> clazz)
T - an arbitrary typeclazz - a non-null class