package org.itsnat.droid.impl.stdalone; import android.content.Context; import org.itsnat.droid.ItsNatDroidException; import org.itsnat.droid.impl.ItsNatResourcesImpl; import org.itsnat.droid.impl.dom.ResourceDesc; import org.itsnat.droid.impl.dom.ResourceDescLocal; import org.itsnat.droid.impl.dom.ResourceDescRemote; import org.itsnat.droid.impl.domparser.XMLDOMParser; import org.itsnat.droid.impl.domparser.XMLDOMParserContext; import org.itsnat.droid.impl.xmlinflater.layout.XMLInflaterLayout; import org.itsnat.droid.impl.xmlinflater.layout.stdalone.XMLInflaterLayoutStandalone; /** * Created by jmarranz on 12/04/2016. */ public class ItsNatResourcesStandaloneImpl extends ItsNatResourcesImpl { protected final XMLInflaterLayoutStandalone xmlInflaterLayoutStandalone; protected final XMLDOMParserContext xmlDOMParserContext; public ItsNatResourcesStandaloneImpl(XMLInflaterLayoutStandalone xmlInflaterLayoutStandalone) { super(xmlInflaterLayoutStandalone.getInflatedXMLLayoutStandaloneImpl().getItsNatDroidImpl().getXMLDOMRegistry(), xmlInflaterLayoutStandalone.getXMLInflaterContext(), xmlInflaterLayoutStandalone.getInflatedXMLLayoutStandaloneImpl().getItsNatDroidImpl().getXMLInflaterRegistry()); // En este caso PageImpl es null y no hay ItsNatDoc this.xmlInflaterLayoutStandalone = xmlInflaterLayoutStandalone; Context ctx = xmlInflaterLayoutStandalone.getContext(); this.xmlDOMParserContext = new XMLDOMParserContext(xmlDOMRegistry,ctx); } public XMLInflaterLayout getXMLInflaterLayout() { return xmlInflaterLayoutStandalone; } public Context getContext() { return xmlInflaterLayoutStandalone.getContext(); } private ResourceDesc checkRemote(ResourceDesc resourceDesc) { if (resourceDesc instanceof ResourceDescRemote) throw new ItsNatDroidException("Remote resource is not allowed in this context, use assets or intern files instead"); return resourceDesc; // Puede ser ResourceDescLocal o "compiled" } @Override protected ResourceDesc prepare(String resourceDescValue,ResourceDesc resourceDesc) { if (resourceDesc == null) resourceDesc = ResourceDesc.create(resourceDescValue); resourceDesc = checkRemote(resourceDesc); if (resourceDesc instanceof ResourceDescLocal) // Puede ser "compiled" tambiƩn { XMLDOMParser.prepareResourceDescLocalToLoadResource((ResourceDescLocal) resourceDesc, xmlDOMParserContext); } return resourceDesc; } }