1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.jsieve.utils;
21
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.Iterator;
25 import java.util.List;
26 import java.util.Map;
27
28 import javax.mail.internet.MimeMessage;
29
30 import org.apache.jsieve.mail.SieveMailException;
31 import org.apache.jsieve.mail.optional.EnvelopeAccessors;
32
33
34
35
36
37
38
39
40
41
42
43
44 public class SieveEnvelopeMailAdapter extends SieveMailAdapter implements
45 EnvelopeAccessors {
46
47
48
49 private String fieldEnvelopeFrom;
50
51
52
53
54
55 private String fieldEnvelopeTo;
56
57
58
59
60
61
62 public SieveEnvelopeMailAdapter(MimeMessage message) {
63 super(message);
64 }
65
66
67
68
69
70
71 protected Map<String, String> getEnvelopes() {
72 Map<String, String> envelopes = new HashMap<String, String>(2);
73 if (null != getEnvelopeFrom())
74 envelopes.put("From", getEnvelopeFrom());
75 if (null != getEnvelopeTo())
76 envelopes.put("To", getEnvelopeTo());
77 return envelopes;
78 }
79
80
81
82
83 public List<String> getEnvelope(String name) throws SieveMailException {
84 List<String> values = new ArrayList<String>(1);
85 String value = getEnvelopes().get(name);
86 if (null != value)
87 values.add(value);
88 return values;
89 }
90
91
92
93
94 public List<String> getEnvelopeNames() throws SieveMailException {
95 return new ArrayList<String>(getEnvelopes().keySet());
96 }
97
98
99
100
101 public List<String> getMatchingEnvelope(String name) throws SieveMailException {
102 Iterator envelopeNamesIter = getEnvelopeNames().iterator();
103 List<String> matchedEnvelopeValues = new ArrayList<String>(32);
104 while (envelopeNamesIter.hasNext()) {
105 String envelopeName = (String) envelopeNamesIter.next();
106 if (envelopeName.trim().equalsIgnoreCase(name))
107 matchedEnvelopeValues.addAll(getEnvelope(envelopeName));
108 }
109
110 return matchedEnvelopeValues;
111 }
112
113
114
115
116
117
118 public String getEnvelopeFrom() {
119 return fieldEnvelopeFrom;
120 }
121
122
123
124
125
126
127 public String getEnvelopeTo() {
128 return fieldEnvelopeTo;
129 }
130
131
132
133
134
135
136
137 public void setEnvelopeFrom(String from) {
138 fieldEnvelopeFrom = from;
139 }
140
141
142
143
144
145
146
147 public void setEnvelopeTo(String recipient) {
148 fieldEnvelopeTo = recipient;
149 }
150
151 }