public abstract Annotation[][] getArgAnnotations();
public abstract String[] getArgNames();
+ public abstract Class[] getArgTypes();
public static Bindable create(Object o) {
if (o instanceof Class) return new BindableClass((Class)o);
public Object impose(Object[] fields) { return Reflection.impose(_method, fields); }
public Annotation[][] getArgAnnotations() { return _method.getParameterAnnotations(); }
public String[] getArgNames() { return new String[_method.getParameterTypes().length]; }
+ public Class[] getArgTypes() { return _method.getParameterTypes(); }
public void toJava(StringBuffer sb) {
sb.append("Bindable.create(");
sb.append(_method.getDeclaringClass().getName().replace('$','.'));
private final Constructor _constructor;
public String toString() { return "BindableConstructor["+_constructor+"]"; }
public BindableConstructor(Constructor _constructor) { this._constructor = _constructor; }
- public String getSimpleName() { return _constructor.getName(); }
+ public String getSimpleName() { return _constructor.getDeclaringClass().getSimpleName(); }
public <A extends Annotation> A getAnnotation(Class<A> c) { return _constructor.getAnnotation(c); }
public Object impose(Object[] fields) { return Reflection.impose(_constructor, fields); }
public Annotation[][] getArgAnnotations() { return _constructor.getParameterAnnotations(); }
public String[] getArgNames() { return new String[_constructor.getParameterTypes().length]; }
+ public Class[] getArgTypes() { return _constructor.getParameterTypes(); }
public void toJava(StringBuffer sb) {
sb.append("Bindable.create(");
sb.append(_constructor.getDeclaringClass().getName().replace('$','.'));
private final Class _class;
public String toString() { return "BindableClass["+_class+"]"; }
public BindableClass(Class _class) { this._class = _class; }
- public String getSimpleName() {
- String s = _class.getSimpleName();
- if (s.indexOf('$') != -1)
- return s.substring(s.indexOf('$')+1);
- return s;
- }
+ public String getSimpleName() { return _class.getSimpleName(); }
public <A extends Annotation> A getAnnotation(Class<A> c) { return (A)_class.getAnnotation(c); }
public Object impose(Object[] fields) { return Reflection.impose(_class, fields); }
public Annotation[][] getArgAnnotations() {
ret[i] = fields[i].getName();
return ret;
}
+ public Class[] getArgTypes() {
+ Field[] fields = _class.getFields();
+ Class[] ret = new Class[fields.length];
+ for(int i=0; i<fields.length; i++)
+ ret[i] = fields[i].getType();
+ return ret;
+ }
public void toJava(StringBuffer sb) {
sb.append("Bindable.create(");
sb.append(_class.getName().replace('$','.'));