package org.itsnat.droid.impl.xmlinflater.shared.attr;
import org.itsnat.droid.impl.dom.DOMAttr;
import org.itsnat.droid.impl.xmlinflater.AttrContext;
import org.itsnat.droid.impl.xmlinflater.shared.classtree.ClassDesc;
/**
* Created by jmarranz on 30/04/14.
*/
public class AttrDescReflecMethodObject<TclassDesc extends ClassDesc,TattrTarget,TattrContext extends AttrContext>
extends AttrDescReflecMethod<TclassDesc,TattrTarget,TattrContext>
{
public AttrDescReflecMethodObject(TclassDesc parent, String name, String methodName)
{
super(parent,name,methodName,getClassParam());
}
public AttrDescReflecMethodObject(TclassDesc parent, String name)
{
super(parent,name,getClassParam());
}
protected static Class<?> getClassParam()
{
return Object.class;
}
@Override
public void setAttribute(TattrTarget target,DOMAttr attr, TattrContext attrCtx)
{
// El único caso que usa AttrDescReflecMethodObject es el atributo android:tag y sólo veo el caso de uso de ser una cadena
CharSequence convValue = getText(attr.getResourceDesc(),attrCtx.getXMLInflaterContext());
callMethod(target, convValue);
}
@Override
public void removeAttribute(TattrTarget target, TattrContext attrCtx)
{
callMethod(target, null);
}
}