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.reponse;
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
63 public DsmlDecorator<? extends Response> getCurrentResponse()
64 {
65 return responses.get( responses.size() - 1 );
66 }
67
68
69
70
71
72
73
74
75
76
77 public boolean addResponse( DsmlDecorator<? extends Response> response )
78 {
79 return responses.add( response );
80 }
81
82
83
84
85
86
87
88
89
90
91 public boolean removeResponse( DsmlDecorator<Response> response )
92 {
93 return responses.remove( response );
94 }
95
96
97
98
99
100
101
102 public int getRequestID()
103 {
104 return requestID;
105 }
106
107
108
109
110
111
112
113
114 public void setRequestID( int requestID )
115 {
116 this.requestID = requestID;
117 }
118
119
120
121
122
123
124
125
126 public List<DsmlDecorator<? extends Response>> getResponses()
127 {
128 return responses;
129 }
130
131
132
133
134
135
136
137
138
139
140 public String toDsml()
141 {
142 return toDsml( true );
143 }
144
145
146
147
148
149
150
151
152 public String toDsml( boolean prettyPrint )
153 {
154 Document document = DocumentHelper.createDocument();
155 Element element = document.addElement( "batchResponse" );
156
157 element.add( ParserUtils.DSML_NAMESPACE );
158 element.add( ParserUtils.XSD_NAMESPACE );
159 element.add( ParserUtils.XSI_NAMESPACE );
160
161
162 if ( requestID != 0 )
163 {
164 element.addAttribute( "requestID", "" + requestID );
165 }
166
167 for ( DsmlDecorator<? extends Response> response : responses )
168 {
169 response.toDsml( element );
170 }
171
172 if( prettyPrint )
173 {
174 document = ParserUtils.styleDocument( document );
175 }
176
177 return document.asXML();
178 }
179 }