public class BindingContext
extends java.lang.Object
A BindingContext
holds information about how to bind various parts of a Java Object.
Binding Constants - TODO
Visibility - TODO
Subclassing - TODO
Bindable models - have to be final
Constructor and Description |
---|
BindingContext(java.lang.Object object)
Create a BindingContext for the given, non-null object.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
evalOnObject(java.lang.String on,
BindableModel model) |
ObjectFieldMethod |
findGetter(java.lang.String property) |
static java.util.List<java.lang.Class<?>> |
findModelUpdateClass(BindableModel modelClass)
Returns the list of
ModelUpdate types in this binding context. |
static ModelUpdate |
findOnObject(java.lang.String on,
BindableModel model)
Resolves a string reference, as specified in the
on parameter of
a Bound annotation to an Enum object in this runtime. |
ObjectFieldMethod |
findSetter(java.lang.String property) |
java.util.List<java.lang.reflect.Field> |
getAnnotatedFields(java.lang.Class<? extends java.lang.annotation.Annotation> klass) |
java.util.List<ObjectFieldMethod> |
getAnnotatedParameterlessMethods(java.lang.Class<? extends java.lang.annotation.Annotation> annotation) |
java.lang.Object |
getBindableConstant(java.lang.String key)
Gets a constant from the binding context.
|
ObjectFieldMethod |
getBindableMethod(java.lang.String key)
Looks up an
ObjectFieldMethod tuple by its key. |
BindableModel |
getBindableModel(java.lang.String key) |
ObjectFieldMethod |
getBindableModelMethod(java.lang.String key)
Looks up an
ObjectFieldMethod tuple by its key. |
java.util.Set<BindableModel> |
getBindableModels() |
<T> T |
getFieldObject(java.lang.reflect.Field field,
java.lang.Class<T> klass)
Returns the value of the specified Field on the object bound by this
BindingContext |
static java.util.List<java.lang.Object> |
getOnObjects(java.lang.String[] ons,
BindableModel model) |
static <T extends java.lang.Enum<?> & ModelUpdate> |
isOn(java.util.Collection<java.lang.Object> ons,
T... changed) |
static <T extends java.lang.Enum<?> & ModelUpdate> |
isOn(java.lang.Object onObject,
T... changed) |
public BindingContext(java.lang.Object object)
BindingException
if there is a problem.object
- the object - cannot be nullpublic java.lang.Object getBindableConstant(java.lang.String key)
key
- the name of the fieldpublic <T> T getFieldObject(java.lang.reflect.Field field, java.lang.Class<T> klass) throws java.lang.IllegalArgumentException
BindingContext
field
- Field
to pull the value fromklass
- return type of value in the Field
klass
from field field
on bound object.java.lang.IllegalArgumentException
- if the passed Field
is not a field on the object
bound by this BindingContext
public ObjectFieldMethod getBindableMethod(java.lang.String key)
ObjectFieldMethod
tuple by its key.key
- - generated by OnChange.call()
public ObjectFieldMethod getBindableModelMethod(java.lang.String key)
ObjectFieldMethod
tuple by its key.key
- - generated by OnChange.call()
public BindableModel getBindableModel(java.lang.String key)
public java.lang.Object evalOnObject(java.lang.String on, BindableModel model)
public static java.util.List<java.lang.Class<?>> findModelUpdateClass(BindableModel modelClass)
ModelUpdate
types in this binding context.modelClass
- Class
es that implement ModelUpdate
in this binding context.public static ModelUpdate findOnObject(java.lang.String on, BindableModel model)
on
parameter of
a Bound
annotation to an Enum object in this runtime.on
- on
parameter from a Bound
annotation.model
- java.lang.IllegalArgumentException
- if the referenced object can't be found.public ObjectFieldMethod findGetter(java.lang.String property)
public ObjectFieldMethod findSetter(java.lang.String property)
public java.util.Set<BindableModel> getBindableModels()
public java.util.List<java.lang.reflect.Field> getAnnotatedFields(java.lang.Class<? extends java.lang.annotation.Annotation> klass)
public java.util.List<ObjectFieldMethod> getAnnotatedParameterlessMethods(java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
public static <T extends java.lang.Enum<?> & ModelUpdate> boolean isOn(java.lang.Object onObject, T... changed)
public static <T extends java.lang.Enum<?> & ModelUpdate> boolean isOn(java.util.Collection<java.lang.Object> ons, T... changed)
public static java.util.List<java.lang.Object> getOnObjects(java.lang.String[] ons, BindableModel model)