View Javadoc
1 /*** 2 * Redistribution and use of this software and associated documentation 3 * ("Software"), with or without modification, are permitted provided 4 * that the following conditions are met: 5 * 6 * 1. Redistributions of source code must retain copyright 7 * statements and notices. Redistributions must also contain a 8 * copy of this document. 9 * 10 * 2. Redistributions in binary form must reproduce the 11 * above copyright notice, this list of conditions and the 12 * following disclaimer in the documentation and/or other 13 * materials provided with the distribution. 14 * 15 * 3. The name "Exolab" must not be used to endorse or promote 16 * products derived from this Software without prior written 17 * permission of Exoffice Technologies. For written permission, 18 * please contact tma@netspace.net.au. 19 * 20 * 4. Products derived from this Software may not be called "Exolab" 21 * nor may "Exolab" appear in their names without prior written 22 * permission of Exoffice Technologies. Exolab is a registered 23 * trademark of Exoffice Technologies. 24 * 25 * 5. Due credit should be given to the Exolab Project 26 * (http://www.exolab.org/). 27 * 28 * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS 29 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT 30 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 31 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 32 * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 33 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 34 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 35 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 37 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 39 * OF THE POSSIBILITY OF SUCH DAMAGE. 40 * 41 * Copyright 2001-2004 (C) Exoffice Technologies Inc. All Rights Reserved. 42 * 43 * $Id: DeliveryTypes.java,v 1.5 2004/01/31 13:44:24 tanderson Exp $ 44 */ 45 package org.exolab.jmscts.core; 46 47 48 /*** 49 * Helper class used to indicate what delivery, destination type and message 50 * receipt modes should be used to run a particular test case against 51 * 52 * @version $Revision: 1.5 $ $Date: 2004/01/31 13:44:24 $ 53 * @author <a href="mailto:tma@netspace.net.au">Tim Anderson</a> 54 * @see DeliveryType 55 * @see SendReceiveTestCase 56 * @see SendReceiveTestRunner 57 */ 58 public class DeliveryTypes { 59 60 /*** 61 * NON_PERSISTENT delivery mode, administered destinations, no 62 * receipt 63 */ 64 public static final DeliveryType SEND_NON_PERSISTENT_ADMINISTERED; 65 66 /*** 67 * PERSISTENT delivery mode, administered destinations, no 68 * receipt 69 */ 70 public static final DeliveryType SEND_PERSISTENT_ADMINISTERED; 71 72 /*** 73 * NON_PERSISTENT delivery mode, temporary destinations, no 74 * receipt 75 */ 76 public static final DeliveryType SEND_NON_PERSISTENT_TEMPORARY; 77 78 /*** 79 * PERSISTENT delivery mode, temporary destinations, no 80 * receipt 81 */ 82 public static final DeliveryType SEND_PERSISTENT_TEMPORARY; 83 84 /*** 85 * All SEND delivery types 86 */ 87 public static final DeliveryTypes ALL_SEND; 88 89 /*** 90 * NON_PERSISTENT delivery mode, administered destinations, synchronous 91 * receipt 92 */ 93 public static final DeliveryType NON_PERSISTENT_ADMINISTERED_SYNC; 94 95 /*** 96 * NON_PERSISTENT delivery mode, administered destinations, asynchronous 97 * receipt 98 */ 99 public static final DeliveryType NON_PERSISTENT_ADMINISTERED_ASYNC; 100 101 /*** 102 * NON_PERSISTENT delivery mode, administered destinations, browser receipt 103 */ 104 public static final DeliveryType NON_PERSISTENT_ADMINISTERED_BROWSER; 105 106 /*** 107 * NON_PERSISTENT delivery mode, temporary destinations, synchronous 108 * receipt 109 */ 110 public static final DeliveryType NON_PERSISTENT_TEMPORARY_SYNC; 111 112 /*** 113 * NON_PERSISTENT delivery mode, temporary destinations, asynchronous 114 * receipt 115 */ 116 public static final DeliveryType NON_PERSISTENT_TEMPORARY_ASYNC; 117 118 /*** 119 * NON_PERSISTENT delivery mode, temporary destinations, browser receipt 120 */ 121 public static final DeliveryType NON_PERSISTENT_TEMPORARY_BROWSER; 122 123 /*** 124 * PERSISTENT delivery mode, administered destinations, synchronous receipt 125 */ 126 public static final DeliveryType PERSISTENT_ADMINISTERED_SYNC; 127 128 /*** 129 * PERSISTENT delivery mode, administered destinations, asynchronous 130 * receipt 131 */ 132 public static final DeliveryType PERSISTENT_ADMINISTERED_ASYNC; 133 134 /*** 135 * PERSISTENT delivery mode, administered destinations, browser receipt 136 */ 137 public static final DeliveryType PERSISTENT_ADMINISTERED_BROWSER; 138 139 /*** 140 * PERSISTENT delivery mode, temporary destinations, synchronous receipt 141 */ 142 public static final DeliveryType PERSISTENT_TEMPORARY_SYNC; 143 144 /*** 145 * PERSISTENT delivery mode, temporary destinations, asynchronous receipt 146 */ 147 public static final DeliveryType PERSISTENT_TEMPORARY_ASYNC; 148 149 /*** 150 * PERSISTENT delivery mode, temporary destinations, browser receipt 151 */ 152 public static final DeliveryType PERSISTENT_TEMPORARY_BROWSER; 153 154 /*** 155 * All NON_PERSISTENT delivery types 156 */ 157 public static final DeliveryTypes NON_PERSISTENT; 158 159 /*** 160 * All PERSISTENT delivery types 161 */ 162 public static final DeliveryTypes PERSISTENT; 163 164 /*** 165 * All synchronous delivery types 166 */ 167 public static final DeliveryTypes SYNCHRONOUS; 168 169 /*** 170 * All asynchronous delivery types 171 */ 172 public static final DeliveryTypes ASYNCHRONOUS; 173 174 /*** 175 * All temporary destination delivery types 176 */ 177 public static final DeliveryTypes TEMPORARY; 178 179 /*** 180 * All administered destination delivery types 181 */ 182 public static final DeliveryTypes ADMINISTERED; 183 184 /*** 185 * All non-persistent consumer delivery types (i.e no browsers) 186 */ 187 public static final DeliveryTypes NON_PERSISTENT_CONSUMER; 188 189 /*** 190 * All persistent consumer delivery types (i.e no browsers) 191 */ 192 public static final DeliveryTypes PERSISTENT_CONSUMER; 193 194 /*** 195 * All administered destination consumer delivery types (i.e no browsers) 196 */ 197 public static final DeliveryTypes ADMINISTERED_CONSUMER; 198 199 /*** 200 * All temporary destination consumer delivery types (i.e no browsers) 201 */ 202 public static final DeliveryTypes TEMPORARY_CONSUMER; 203 204 /*** 205 * All consumer delivery types (i.e no browsers) 206 */ 207 public static final DeliveryTypes CONSUMER; 208 209 /*** 210 * All delivery types 211 */ 212 public static final DeliveryTypes ALL; 213 214 /*** 215 * The delivery types to test against 216 */ 217 private final DeliveryType[] _types; 218 219 /*** 220 * Construct a new instance to test against a single delivery type 221 * 222 * @param type the delivery type 223 */ 224 public DeliveryTypes(DeliveryType type) { 225 if (type == null) { 226 throw new IllegalArgumentException("Argument type is null"); 227 } 228 _types = new DeliveryType[]{type}; 229 } 230 231 /*** 232 * Construct a new instance to test against a set of delivery types 233 * 234 * @param types a list of delivery types 235 */ 236 public DeliveryTypes(DeliveryType[] types) { 237 if (types == null) { 238 throw new IllegalArgumentException("Argument types is null"); 239 } 240 if (types.length == 0) { 241 throw new IllegalArgumentException( 242 "Argument types has no elements"); 243 } 244 _types = types; 245 } 246 247 /*** 248 * Return the list of delivery types to test against 249 * 250 * @return the list of delivery types to test against 251 */ 252 public DeliveryType[] getTypes() { 253 return _types; 254 } 255 256 /*** 257 * Return a count of the delivery types 258 * 259 * @return the number of delivery types 260 */ 261 public int count() { 262 return _types.length; 263 } 264 265 /*** 266 * Helper to parse a DeliveryType from a string 267 * 268 * @param types the strings to parse 269 * @return the parsed delivery types 270 */ 271 public static DeliveryTypes fromString(String[] types) { 272 DeliveryTypes result = null; 273 DeliveryType[] set = new DeliveryType[types.length]; 274 for (int i = 0; i < types.length; ++i) { 275 if ("all".equalsIgnoreCase(types[i])) { 276 result = ALL; 277 break; 278 } else if ("all-send".equalsIgnoreCase(types[i])) { 279 result = ALL_SEND; 280 break; 281 } else if ("administered-consumer".equalsIgnoreCase(types[i])) { 282 result = ADMINISTERED_CONSUMER; 283 break; 284 } else if ("asynchronous".equalsIgnoreCase(types[i])) { 285 result = ASYNCHRONOUS; 286 break; 287 } else if ("consumer".equalsIgnoreCase(types[i])) { 288 result = CONSUMER; 289 break; 290 } else if ("synchronous".equalsIgnoreCase(types[i])) { 291 result = SYNCHRONOUS; 292 break; 293 } else { 294 set[i] = DeliveryType.fromString(types[i]); 295 } 296 } 297 if (result == null) { 298 result = new DeliveryTypes(set); 299 } 300 return result; 301 } 302 303 static { 304 SEND_NON_PERSISTENT_ADMINISTERED = new DeliveryType(false, true); 305 SEND_PERSISTENT_ADMINISTERED = new DeliveryType(true, true); 306 SEND_NON_PERSISTENT_TEMPORARY = new DeliveryType(false, false); 307 SEND_PERSISTENT_TEMPORARY = new DeliveryType(true, false); 308 ALL_SEND = new DeliveryTypes(new DeliveryType[]{ 309 SEND_NON_PERSISTENT_ADMINISTERED, 310 SEND_PERSISTENT_ADMINISTERED, 311 SEND_NON_PERSISTENT_TEMPORARY, 312 SEND_PERSISTENT_TEMPORARY}); 313 314 NON_PERSISTENT_ADMINISTERED_SYNC = 315 new DeliveryType(false, true, ReceiptType.SYNCHRONOUS); 316 NON_PERSISTENT_ADMINISTERED_ASYNC = 317 new DeliveryType(false, true, ReceiptType.ASYNCHRONOUS); 318 NON_PERSISTENT_ADMINISTERED_BROWSER = 319 new DeliveryType(false, true, ReceiptType.BROWSER); 320 NON_PERSISTENT_TEMPORARY_SYNC = 321 new DeliveryType(false, false, ReceiptType.SYNCHRONOUS); 322 NON_PERSISTENT_TEMPORARY_ASYNC = 323 new DeliveryType(false, false, ReceiptType.ASYNCHRONOUS); 324 NON_PERSISTENT_TEMPORARY_BROWSER = 325 new DeliveryType(false, false, ReceiptType.BROWSER); 326 PERSISTENT_ADMINISTERED_SYNC = 327 new DeliveryType(true, true, ReceiptType.SYNCHRONOUS); 328 PERSISTENT_ADMINISTERED_ASYNC = 329 new DeliveryType(true, true, ReceiptType.ASYNCHRONOUS); 330 PERSISTENT_ADMINISTERED_BROWSER = 331 new DeliveryType(true, true, ReceiptType.BROWSER); 332 PERSISTENT_TEMPORARY_SYNC = 333 new DeliveryType(true, false, ReceiptType.SYNCHRONOUS); 334 PERSISTENT_TEMPORARY_ASYNC = 335 new DeliveryType(true, false, ReceiptType.ASYNCHRONOUS); 336 PERSISTENT_TEMPORARY_BROWSER = 337 new DeliveryType(true, false, ReceiptType.BROWSER); 338 339 NON_PERSISTENT = new DeliveryTypes(new DeliveryType[] { 340 NON_PERSISTENT_ADMINISTERED_SYNC, 341 NON_PERSISTENT_ADMINISTERED_ASYNC, 342 NON_PERSISTENT_ADMINISTERED_BROWSER, 343 NON_PERSISTENT_TEMPORARY_SYNC, 344 NON_PERSISTENT_TEMPORARY_ASYNC, 345 NON_PERSISTENT_TEMPORARY_BROWSER}); 346 347 PERSISTENT = new DeliveryTypes(new DeliveryType[] { 348 PERSISTENT_ADMINISTERED_SYNC, 349 PERSISTENT_ADMINISTERED_ASYNC, 350 PERSISTENT_ADMINISTERED_BROWSER, 351 PERSISTENT_TEMPORARY_SYNC, 352 PERSISTENT_TEMPORARY_ASYNC, 353 PERSISTENT_TEMPORARY_BROWSER}); 354 355 SYNCHRONOUS = new DeliveryTypes(new DeliveryType[] { 356 NON_PERSISTENT_ADMINISTERED_SYNC, 357 NON_PERSISTENT_TEMPORARY_SYNC, 358 PERSISTENT_ADMINISTERED_SYNC, 359 PERSISTENT_TEMPORARY_SYNC}); 360 361 ASYNCHRONOUS = new DeliveryTypes(new DeliveryType[] { 362 NON_PERSISTENT_ADMINISTERED_ASYNC, 363 NON_PERSISTENT_TEMPORARY_ASYNC, 364 PERSISTENT_ADMINISTERED_ASYNC, 365 PERSISTENT_TEMPORARY_ASYNC}); 366 367 TEMPORARY = new DeliveryTypes(new DeliveryType[] { 368 NON_PERSISTENT_TEMPORARY_SYNC, 369 NON_PERSISTENT_TEMPORARY_ASYNC, 370 NON_PERSISTENT_TEMPORARY_BROWSER, 371 PERSISTENT_TEMPORARY_SYNC, 372 PERSISTENT_TEMPORARY_ASYNC, 373 PERSISTENT_TEMPORARY_BROWSER}); 374 375 ADMINISTERED = new DeliveryTypes(new DeliveryType[] { 376 NON_PERSISTENT_ADMINISTERED_SYNC, 377 NON_PERSISTENT_ADMINISTERED_ASYNC, 378 NON_PERSISTENT_ADMINISTERED_BROWSER, 379 PERSISTENT_ADMINISTERED_SYNC, 380 PERSISTENT_ADMINISTERED_ASYNC, 381 PERSISTENT_ADMINISTERED_BROWSER}); 382 383 NON_PERSISTENT_CONSUMER = new DeliveryTypes(new DeliveryType[] { 384 NON_PERSISTENT_ADMINISTERED_SYNC, 385 NON_PERSISTENT_ADMINISTERED_ASYNC, 386 NON_PERSISTENT_TEMPORARY_SYNC, 387 NON_PERSISTENT_TEMPORARY_ASYNC}); 388 389 PERSISTENT_CONSUMER = new DeliveryTypes(new DeliveryType[] { 390 PERSISTENT_ADMINISTERED_SYNC, 391 PERSISTENT_ADMINISTERED_ASYNC, 392 PERSISTENT_TEMPORARY_SYNC, 393 PERSISTENT_TEMPORARY_ASYNC}); 394 395 ADMINISTERED_CONSUMER = new DeliveryTypes(new DeliveryType[] { 396 NON_PERSISTENT_ADMINISTERED_SYNC, 397 NON_PERSISTENT_ADMINISTERED_ASYNC, 398 PERSISTENT_ADMINISTERED_SYNC, 399 PERSISTENT_ADMINISTERED_ASYNC}); 400 401 TEMPORARY_CONSUMER = new DeliveryTypes(new DeliveryType[] { 402 NON_PERSISTENT_TEMPORARY_SYNC, 403 NON_PERSISTENT_TEMPORARY_ASYNC, 404 PERSISTENT_TEMPORARY_SYNC, 405 PERSISTENT_TEMPORARY_ASYNC}); 406 407 CONSUMER = new DeliveryTypes(new DeliveryType[] { 408 NON_PERSISTENT_ADMINISTERED_SYNC, 409 NON_PERSISTENT_ADMINISTERED_ASYNC, 410 NON_PERSISTENT_TEMPORARY_SYNC, 411 NON_PERSISTENT_TEMPORARY_ASYNC, 412 PERSISTENT_ADMINISTERED_SYNC, 413 PERSISTENT_ADMINISTERED_ASYNC, 414 PERSISTENT_TEMPORARY_SYNC, 415 PERSISTENT_TEMPORARY_ASYNC}); 416 417 ALL = new DeliveryTypes(new DeliveryType[] { 418 NON_PERSISTENT_ADMINISTERED_SYNC, 419 NON_PERSISTENT_ADMINISTERED_ASYNC, 420 NON_PERSISTENT_ADMINISTERED_BROWSER, 421 NON_PERSISTENT_TEMPORARY_SYNC, 422 NON_PERSISTENT_TEMPORARY_ASYNC, 423 NON_PERSISTENT_TEMPORARY_BROWSER, 424 PERSISTENT_ADMINISTERED_SYNC, 425 PERSISTENT_ADMINISTERED_ASYNC, 426 PERSISTENT_ADMINISTERED_BROWSER, 427 PERSISTENT_TEMPORARY_SYNC, 428 PERSISTENT_TEMPORARY_ASYNC, 429 PERSISTENT_TEMPORARY_BROWSER}); 430 } 431 432 }

This page was automatically generated by Maven