blob: b07d4af01c8bfe594145c527528dfd7998d1344c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
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;
}
|