1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package davmail.exchange.ews;
20
21 import java.io.IOException;
22 import java.io.Writer;
23 import java.util.HashSet;
24 import java.util.Set;
25
26
27
28
29 public class IndexedFieldUpdate extends FieldUpdate {
30 final Set<FieldUpdate> updates = new HashSet<>();
31 protected final String collectionName;
32
33
34
35
36
37
38 public IndexedFieldUpdate(String collectionName) {
39 this.collectionName = collectionName;
40 }
41
42
43
44
45
46
47 public void addFieldValue(FieldUpdate fieldUpdate) {
48 updates.add(fieldUpdate);
49 }
50
51
52
53
54
55
56
57
58 @Override
59 public void write(String itemType, Writer writer) throws IOException {
60 if (itemType == null) {
61
62 boolean hasValue = false;
63 for (FieldUpdate fieldUpdate : updates) {
64 if (fieldUpdate.value != null) {
65 hasValue = true;
66 break;
67 }
68 }
69 if (hasValue) {
70
71 writer.write("<t:");
72 writer.write(collectionName);
73 writer.write(">");
74
75 StringBuilder buffer = new StringBuilder();
76 for (FieldUpdate fieldUpdate : updates) {
77 fieldUpdate.fieldURI.appendValue(buffer, null, fieldUpdate.value);
78 }
79 writer.write(buffer.toString());
80
81 writer.write("</t:");
82 writer.write(collectionName);
83 writer.write(">");
84 }
85 } else {
86
87 for (FieldUpdate fieldUpdate : updates) {
88 fieldUpdate.write(itemType, writer);
89 }
90 }
91 }
92
93 }