View Javadoc
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 /*** 21 * Class to represent an enumeration constraint on a <tt>int</tt> message field. 22 * @author Jawaid Hakim. 23 */ 24 public class RFldConstraintI32Enum extends RFldConstraintI32 25 { 26 /*** 27 * Constructor. 28 * @param fldName Name of field to which this constraint is bound. 29 * @param enums Enumeration of allowed values. 30 */ 31 public RFldConstraintI32Enum(String fldName, int[] enums) throws FieldValidationException 32 { 33 if (enums == null) 34 throw new FieldValidationException("NULL enums: " + fldName); 35 enums_ = enums; 36 } 37 38 /*** 39 * Constructor. 40 * @param fldName Name of field to which this constraint is bound. 41 * @param enums Enumeration of allowed values. 42 */ 43 public RFldConstraintI32Enum(String fldName, String[] enums) throws FieldValidationException 44 { 45 if (enums == null) 46 throw new FieldValidationException("NULL enums: " + fldName); 47 int[] intEnums = new int[enums.length]; 48 for (int i = intEnums.length - 1; i >= 0 ; --i) 49 intEnums[i] = Integer.parseInt(enums[i]); 50 enums_ = intEnums; 51 } 52 53 /*** 54 * Get error description. 55 * @param fldName Field name. 56 * @return Error description. 57 */ 58 public String errDesc(String fldName) 59 { 60 return "Field value not in enumeration: " + fldName; 61 } 62 63 /*** 64 * Check if a value satisfies the constraint. 65 * @param val Value. 66 * @return <tt>true</tt> if the field satisfied the 67 * constraint. Otherwise, <tt>false</tt> is returned. 68 */ 69 public boolean isValid(int val) 70 { 71 if (enums_ == null) 72 return true; 73 74 for (int i = enums_.length - 1; i >= 0 ; --i) 75 { 76 if (val == enums_[i]) 77 return true; 78 } 79 80 return false; 81 } 82 83 /*** 84 * Enumeration of allowed values. 85 */ 86 protected int[] enums_; 87 }

This page was automatically generated by Maven