package com.jaeksoft.searchlib.plugin; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import javax.xml.xpath.XPathExpressionException; import org.w3c.dom.DOMException; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import com.jaeksoft.searchlib.util.XPathParser; import com.jaeksoft.searchlib.util.XmlWriter; public class IndexPluginTemplateList { private ArrayList<IndexPluginItem> pluginList; private IndexPluginTemplateList() { pluginList = new ArrayList<IndexPluginItem>(); } private void add(IndexPluginItem item) { pluginList.add(item); } protected Iterator<IndexPluginItem> iterator() { return pluginList.iterator(); } public static IndexPluginTemplateList fromXmlConfig(XPathParser xpp, Node parentNode) throws XPathExpressionException, DOMException, IOException { IndexPluginTemplateList indexPluginList = new IndexPluginTemplateList(); if (parentNode == null) return indexPluginList; NodeList nodes = xpp.getNodeList(parentNode, "indexPlugin"); for (int i = 0; i < nodes.getLength(); i++) indexPluginList.add(new IndexPluginItem(xpp, nodes.item(i))); return indexPluginList; } public void writeXmlConfig(XmlWriter writer) throws SAXException { writer.startElement("indexPlugins"); for (IndexPluginItem item : pluginList) item.writeXmlConfig(writer); writer.endElement(); } }