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.XMLInflaterContext; import org.itsnat.droid.impl.xmlinflater.shared.classtree.ClassDesc; /** * Created by jmarranz on 30/04/14. */ public abstract class AttrDescReflecFieldSetDimensionIntBase<TclassDesc extends ClassDesc,TattrTarget,TattrContext extends AttrContext> extends AttrDescReflecFieldSet<Integer,TclassDesc,TattrTarget,TattrContext> { protected Integer defaultValue; public AttrDescReflecFieldSetDimensionIntBase(TclassDesc parent, String name, String fieldName, Integer defaultValue) { super(parent,name,fieldName); this.defaultValue = defaultValue; } @Override public void setAttribute(TattrTarget target, DOMAttr attr, TattrContext attrCtx) { int convertedValue = getDimensionInt(attr, attrCtx.getXMLInflaterContext()); setField(target,convertedValue); } @Override public void removeAttribute(TattrTarget target, TattrContext attrCtx) { if (defaultValue != null) setField(target,defaultValue); } public abstract int getDimensionInt(DOMAttr attr, XMLInflaterContext xmlInflaterContext); }