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.DsmlLiterals;
28 import org.apache.directory.api.dsmlv2.ParserUtils;
29 import org.apache.directory.api.ldap.model.message.Response;
30 import org.dom4j.Document;
31 import org.dom4j.DocumentHelper;
32 import org.dom4j.Element;
33
34
35
36
37
38
39
40 public class BatchResponseDsml
41 {
42
43 private List<DsmlDecorator<? extends Response>> responses;
44
45
46 private int requestID;
47
48
49
50
51
52 public BatchResponseDsml()
53 {
54 responses = new ArrayList<>();
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 public boolean addResponse( DsmlDecorator<? extends Response> response )
76 {
77 return responses.add( response );
78 }
79
80
81
82
83
84
85
86
87 public boolean removeResponse( DsmlDecorator<Response> response )
88 {
89 return responses.remove( response );
90 }
91
92
93
94
95
96
97
98 public int getRequestID()
99 {
100 return requestID;
101 }
102
103
104
105
106
107
108
109
110 public void setRequestID( int requestID )
111 {
112 this.requestID = requestID;
113 }
114
115
116
117
118
119
120
121
122 public List<DsmlDecorator<? extends Response>> getResponses()
123 {
124 return responses;
125 }
126
127
128
129
130
131
132
133
134 public String toDsml()
135 {
136 return toDsml( true );
137 }
138
139
140
141
142
143
144
145
146 public String toDsml( boolean prettyPrint )
147 {
148 Document document = DocumentHelper.createDocument();
149 Element element = document.addElement( DsmlLiterals.BATCH_RESPONSE );
150
151 element.add( ParserUtils.DSML_NAMESPACE );
152 element.add( ParserUtils.XSD_NAMESPACE );
153 element.add( ParserUtils.XSI_NAMESPACE );
154
155
156 if ( requestID != 0 )
157 {
158 element.addAttribute( DsmlLiterals.REQUEST_ID, Integer.toString( requestID ) );
159 }
160
161 for ( DsmlDecorator<? extends Response> response : responses )
162 {
163 response.toDsml( element );
164 }
165
166 if ( prettyPrint )
167 {
168 document = ParserUtils.styleDocument( document );
169 }
170
171 return document.asXML();
172 }
173 }