package org.itsnat.droid.impl.xmlinflater.values.classtree; import org.itsnat.droid.impl.dom.DOMAttr; import org.itsnat.droid.impl.dom.DOMElement; import org.itsnat.droid.impl.dom.values.DOMElemValuesArrayBase; import org.itsnat.droid.impl.dom.values.DOMElemValuesItemArrayBase; import org.itsnat.droid.impl.xmlinflated.values.ElementValuesArrayBase; import org.itsnat.droid.impl.xmlinflated.values.ElementValuesItemArrayBase; import org.itsnat.droid.impl.xmlinflated.values.ElementValuesResources; import org.itsnat.droid.impl.xmlinflater.values.ClassDescValuesMgr; import java.util.List; /** * Created by jmarranz on 07/01/2016. */ public class ClassDescValuesArrayBase extends ClassDescValues<ElementValuesArrayBase> { public ClassDescValuesArrayBase(ClassDescValuesMgr classMgr,String tagName) { super(classMgr, tagName, null); // tagName = string-array, integer-array, array } public ElementValuesArrayBase createElementValuesArrayBase(DOMElemValuesArrayBase domElement, ElementValuesResources parentChildValues) { String tagName = domElement.getTagName(); String name = domElement.getNameAttr(); ElementValuesArrayBase elementValuesArrayBase = new ElementValuesArrayBase(tagName,name,parentChildValues); processChildElementValuesItemArrayBase(domElement, elementValuesArrayBase); return elementValuesArrayBase; } private void processChildElementValuesItemArrayBase(DOMElemValuesArrayBase domElemParent, ElementValuesArrayBase parentChildValues) { List<DOMElement> childDOMElemList = domElemParent.getChildDOMElementList(); if (childDOMElemList == null) return; parentChildValues.initChildElementValuesList(childDOMElemList.size()); for (DOMElement childDOMElem : childDOMElemList) { ElementValuesItemArrayBase childElemValues = inflateNextElement((DOMElemValuesItemArrayBase)childDOMElem,parentChildValues); parentChildValues.addChildElementValues(childElemValues); } } private ElementValuesItemArrayBase inflateNextElement(DOMElemValuesItemArrayBase domElement,ElementValuesArrayBase parentChildValues) { DOMAttr valueAsDOMAttr = domElement.getValueAsDOMAttr(); return new ElementValuesItemArrayBase(parentChildValues,valueAsDOMAttr); } }