package gueei.binding.bindingProviders;
import gueei.binding.ViewAttribute;
import gueei.binding.viewAttributes.GenericViewAttribute;
import java.lang.reflect.Method;
import android.view.View;
public class GenericViewAttributeProvider extends BindingProvider {
@Override
public ViewAttribute<View, ?> createAttributeForView(View view, String attributeId) {
return tryCreateGenericViewAttribute(view, attributeId);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private ViewAttribute<View, ?> tryCreateGenericViewAttribute(View view,
String attributeId) {
try{
String capAttrib = attributeId.substring(0, 1).toUpperCase() + attributeId.substring(1);
Method getter = view.getClass().getMethod("get" + capAttrib);
Method setter = null;
try{
setter = view.getClass().getMethod("set" + capAttrib, getter.getReturnType());
}catch(Exception e){}
return new GenericViewAttribute(getter.getReturnType(), view, attributeId, getter, setter);
}catch(Exception e){
return null;
}
}
}