package org.tynamo.bindings;
import org.apache.tapestry5.Binding;
import java.lang.annotation.Annotation;
/**
* Binding to use when you don't know the final type of the property bound.
* The bindingType will be computed on the fly based on the binding actual value.
*
*/
public class ModelBinding implements Binding
{
private final Binding binding;
public ModelBinding(Binding binding)
{
this.binding = binding;
}
public Class getBindingType()
{
Object object = binding.get();
if (object == null) throw new NullPointerException("ModelBinding's value can't be null!");
return object.getClass();
}
public Object get()
{
return binding.get();
}
public void set(Object value)
{
binding.set(value);
}
public boolean isInvariant()
{
return binding.isInvariant();
}
public <T extends Annotation> T getAnnotation(Class<T> tClass)
{
return binding.getAnnotation(tClass);
}
}