package org.itsnat.droid.impl.domparser.animator;
import org.itsnat.droid.ItsNatDroidException;
import org.itsnat.droid.impl.dom.DOMElement;
import org.itsnat.droid.impl.dom.animator.DOMElemAnimatorObject;
import org.itsnat.droid.impl.dom.animator.DOMElemAnimatorSet;
import org.itsnat.droid.impl.dom.animator.DOMElemAnimatorValue;
import org.itsnat.droid.impl.dom.animator.XMLDOMAnimator;
import org.itsnat.droid.impl.domparser.XMLDOMParser;
import org.itsnat.droid.impl.domparser.XMLDOMParserContext;
/**
* Created by jmarranz on 31/10/14.
*/
public class XMLDOMAnimatorParser extends XMLDOMParser<XMLDOMAnimator>
{
protected XMLDOMAnimatorParser(XMLDOMParserContext xmlDOMParserContext)
{
super(xmlDOMParserContext);
}
public static XMLDOMAnimatorParser createXMLDOMAnimatorParser(XMLDOMParserContext xmlDOMParserContext)
{
return new XMLDOMAnimatorParser(xmlDOMParserContext);
}
@Override
protected boolean isAndroidNSPrefixNeeded()
{
return true;
}
@Override
protected DOMElement createElement(String tagName,DOMElement parent)
{
// Interesante ver el código fuente de: AnimatorInflater : Animator createAnimatorFromXml(Context c, XmlPullParser parser)
DOMElemAnimatorSet parentAnimator = (DOMElemAnimatorSet)parent;
if ("set".equals(tagName))
{
return new DOMElemAnimatorSet(parentAnimator);
}
else if ("objectAnimator".equals(tagName))
{
return new DOMElemAnimatorObject(parentAnimator);
}
else if ("animator".equals(tagName))
{
return new DOMElemAnimatorValue(parentAnimator);
}
else throw new ItsNatDroidException("Unrecognized animator tag name: " + tagName);
}
}