package com.memberwebs.ldapxml; import java.util.*; import org.w3c.dom.*; /** * Represents a set of elements retrieved from an LDAP tree * by the LXReader. * * @author nielsen@memberwebs.com * @version 0.5 */ public class LXResults { /** * Construct a new LXResults object * * @param doc The owner document for the elements * @param els The elements */ LXResults(Document doc, Vector els, Element root) { m_document = doc; m_elements = els; m_root = root; } /** * Get the number of elements * * @return The number of elements. */ public final int getLength() { return m_elements.size(); } /** * Get a certain element in the results. * * @param i The index to the element. * @return The element. */ public final Element getResult(int i) { return (Element)m_elements.elementAt(i); } /** * Get all the elements as an array * * @return All the result elements. */ public final Element[] getElements() { Object[] values = m_elements.toArray(); Element[] array = new Element[values.length]; for(int i = 0; i < array.length; i++) array[i] = (Element)values[i]; return array; } /** * Get the elements' owner document * * @return The document. */ public final Document getOwnerDocument() { return m_document; } /** * Get the root document element defined in map * * @return The root element. */ public final Element getRootElement() { return m_root; } /** * Puts together the result set into the result document. * * @return The assembled document. */ public final Document assembleDocument() { while(m_document.hasChildNodes()) m_document.removeChild(m_document.getFirstChild()); Node root = m_root.cloneNode(true); for(int i = 0; i < m_elements.size(); i++) root.appendChild((Element)m_elements.elementAt(i)); m_document.appendChild(root); return m_document; } /** * Add the results from another set to this one. * * @param results The results to add. */ public final void addResults(LXResults results) { m_elements.addAll(results.m_elements); } // The elements that make up the results private Vector m_elements; // The parent document of the results private Document m_document; // The root element private Element m_root; }