1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.dsmlv2.response;
21
22
23 import java.util.ArrayList;
24 import java.util.List;
25
26 import org.apache.directory.api.dsmlv2.DsmlDecorator;
27 import org.apache.directory.api.dsmlv2.ParserUtils;
28 import org.apache.directory.api.ldap.model.message.Response;
29 import org.dom4j.Document;
30 import org.dom4j.DocumentHelper;
31 import org.dom4j.Element;
32
33
34
35
36
37
38
39 public class BatchResponseDsml
40 {
41
42 private List<DsmlDecorator<? extends Response>> responses;
43
44
45 private int requestID;
46
47
48
49
50
51 public BatchResponseDsml()
52 {
53 responses = new ArrayList<DsmlDecorator<? extends Response>>();
54 }
55
56
57
58
59
60
61
62 public DsmlDecorator<? extends Response> getCurrentResponse()
63 {
64 return responses.get( responses.size() - 1 );
65 }
66
67
68
69
70
71
72
73
74 public boolean addResponse( DsmlDecorator<? extends Response> response )
75 {
76 return responses.add( response );
77 }
78
79
80
81
82
83
84
85
86 public boolean removeResponse( DsmlDecorator<Response> response )
87 {
88 return responses.remove( response );
89 }
90
91
92
93
94
95
96
97 public int getRequestID()
98 {
99 return requestID;
100 }
101
102
103
104
105
106
107
108
109 public void setRequestID( int requestID )
110 {
111 this.requestID = requestID;
112 }
113
114
115
116
117
118
119
120
121 public List<DsmlDecorator<? extends Response>> getResponses()
122 {
123 return responses;
124 }
125
126
127
128
129
130
131
132
133 public String toDsml()
134 {
135 return toDsml( true );
136 }
137
138
139
140
141
142
143
144
145 public String toDsml( boolean prettyPrint )
146 {
147 Document document = DocumentHelper.createDocument();
148 Element element = document.addElement( "batchResponse" );
149
150 element.add( ParserUtils.DSML_NAMESPACE );
151 element.add( ParserUtils.XSD_NAMESPACE );
152 element.add( ParserUtils.XSI_NAMESPACE );
153
154
155 if ( requestID != 0 )
156 {
157 element.addAttribute( "requestID", Integer.toString( requestID ) );
158 }
159
160 for ( DsmlDecorator<? extends Response> response : responses )
161 {
162 response.toDsml( element );
163 }
164
165 if ( prettyPrint )
166 {
167 document = ParserUtils.styleDocument( document );
168 }
169
170 return document.asXML();
171 }
172 }