1 /***
2 * Copyright (c) 2002, CodeStreet LLC. All rights reserved.<p>
3 * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
4 * conditions are met:<p>
5 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
7 * in the documentation and/or other materials provided with the distribution. Neither the name of CodeStreet LLC. nor the
8 * names of its contributors may be used to endorse or promote products derived from this software without specific prior written
9 * permission.<p>
10 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
11 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
12 * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
13 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
14 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<p>
16 */
17
18 package com.codestreet.messageforge;
19
20 import java.util.Date;
21
22 /***
23 * Class to represent a constraint on a date message field.
24 * @author Jawaid Hakim.
25 */
26 public abstract class RFldConstraintDatetime implements RFldConstraint
27 {
28 /***
29 * Ctor.
30 */
31 protected RFldConstraintDatetime()
32 {
33 }
34
35 /***
36 * Check if a message field satisfies the constraint.
37 * @param fld Field to validate.
38 */
39 public void validate(RFld fld) throws FieldValidationException
40 {
41 if (fld instanceof RFldDatetime)
42 {
43 RFldDatetime dateTimeFld = (RFldDatetime)fld;
44 if (! isValid(dateTimeFld.getValue()))
45 throw new FieldValidationException(errDesc(fld.getName()));
46 }
47 else
48 throw new FieldValidationException("Invalid field type: " + fld.getName());
49 }
50
51 /***
52 * Check if a value satisfies the constraint.
53 * @param val Value to validate.
54 */
55 public void validate(RFld fld, Date val) throws FieldValidationException
56 {
57 if (! isValid(val))
58 throw new FieldValidationException(fld.getName());
59 }
60
61 /***
62 * Check if a datetime message field satisfies the constraint.
63 * @param fld Field to validate.
64 * @return <tt>true</tt> if the field satisfied the
65 * constraint. Otherwise, <tt>false</tt> is returned.
66 */
67 public boolean isValid(RFld fld)
68 {
69 if (fld instanceof RFldDatetime)
70 return isValid(((RFldDatetime)fld).getValue());
71 else
72 return false;
73 }
74
75 /***
76 * Check if a date message field satisfies the constraint.
77 * @param data Data to validate.
78 * @return <tt>true</tt> if the data satisfied the
79 * constraint. Otherwise, <tt>false</tt> is returned.
80 */
81 public abstract boolean isValid(Date data);
82 }
This page was automatically generated by Maven