1 package org.apache.fulcrum.commonsemail.impl;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.fulcrum.commonsemail.SendDeliveryStatus;
23
24 import javax.mail.Address;
25 import javax.mail.event.TransportEvent;
26 import java.util.ArrayList;
27 import java.util.List;
28
29
30
31
32
33
34
35 public class SendDeliveryStatusImpl implements SendDeliveryStatus
36 {
37 private List validSentAddressList;
38 private List validUnsentAddressList;
39 private List invalidAddressList;
40
41
42
43
44 SendDeliveryStatusImpl()
45 {
46 this.validSentAddressList = new ArrayList();
47 this.validUnsentAddressList = new ArrayList();
48 this.invalidAddressList = new ArrayList();
49 }
50
51
52 public boolean hasSucceeded()
53 {
54 if((this.validSentAddressList.size() > 0) &&
55 (this.validUnsentAddressList.size() == 0) &&
56 (this.invalidAddressList.size() == 0 ))
57 {
58 return true;
59 }
60 else
61 {
62 return false;
63 }
64 }
65
66
67 public Address[] getValidSentAddresses()
68 {
69 List currList = this.validSentAddressList;
70 return (Address[]) currList.toArray(new Address[currList.size()]);
71 }
72
73
74 public Address[] getValidUnsentAddresses()
75 {
76 List currList = this.validUnsentAddressList;
77 return (Address[]) currList.toArray(new Address[currList.size()]);
78 }
79
80
81 public Address[] getInvalidAddresses()
82 {
83 List currList = this.invalidAddressList;
84 return (Address[]) currList.toArray(new Address[currList.size()]);
85 }
86
87
88 public String toString()
89 {
90 StringBuffer result = new StringBuffer(128);
91 result.append(this.getClass().getName());
92 result.append('@');
93 result.append(Integer.toHexString(this.hashCode()));
94 result.append(' ');
95 result.append("validSentAddresses:");
96 result.append(this.validSentAddressList.size());
97 result.append(',');
98 result.append("validUnsentAddresses:");
99 result.append(this.validUnsentAddressList.size());
100 result.append(',');
101 result.append("invalidAddresses:");
102 result.append(this.invalidAddressList.size());
103 return result.toString();
104 }
105
106
107
108
109
110
111 void add( TransportEvent transportEvent )
112 {
113 this.addAddresses(this.validSentAddressList, transportEvent.getValidSentAddresses());
114 this.addAddresses(this.validUnsentAddressList, transportEvent.getValidUnsentAddresses() );
115 this.addAddresses(this.invalidAddressList, transportEvent.getInvalidAddresses());
116 }
117
118
119
120
121
122
123 void addSendAddressList( Address[] sentAddresses )
124 {
125 this.addAddresses(this.validSentAddressList, sentAddresses);
126 }
127
128
129
130
131
132
133
134 private void addAddresses(List target, Address[] addressList)
135 {
136 if((addressList != null) && (addressList.length > 0))
137 {
138 for(int i=0; i<addressList.length; i++)
139 {
140 target.add( addressList[i]);
141 }
142 }
143 }
144 }