View Javadoc

1   /**
2    * Copyright 2005-2012 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.krad.datadictionary.validation.constraint;
17  
18  import java.util.ArrayList;
19  import java.util.List;
20  
21  import javax.xml.bind.annotation.XmlAccessType;
22  import javax.xml.bind.annotation.XmlAccessorType;
23  import javax.xml.bind.annotation.XmlElement;
24  
25  
26  /**
27   * A class that implements the required accessor for label keys. This provides a convenient base class
28   * from which other constraints can be derived.
29   * 
30   * This class is a direct copy of one that was in Kuali Student. 
31   * 
32   * @author Kuali Rice Team (rice.collab@kuali.org)
33   * @since 1.1
34   */
35  @XmlAccessorType(XmlAccessType.FIELD)
36  public class BaseConstraint implements Constraint {
37      @XmlElement
38      protected String labelKey; 
39      @XmlElement
40      protected Boolean applyClientSide;
41      
42      List<String> validationMessageParams;
43      
44      public BaseConstraint(){
45      	applyClientSide = Boolean.valueOf(true);
46      }
47      
48  	/**
49  	 * LabelKey should be a single word key.  This key is used to find a message to use for this
50  	 * constraint from available messages.  The key is also used for defining/retrieving validation method
51  	 * names when applicable for ValidCharactersContraints.
52  	 * 
53  	 * If a comma separated list of keys is used, a message will be generated that is a comma separated list of
54  	 * the messages retrieved for each key.
55  	 * 
56  	 * @see ValidCharactersConstraint
57  	 * 
58  	 * @return
59  	 */
60  	public String getLabelKey() {
61  		return labelKey;
62  	}
63  
64  	public void setLabelKey(String labelKey) {
65  		this.labelKey = labelKey;
66  	}
67  
68  	/**
69  	 * If this is true, the constraint should be applied on the client side when the user interacts with
70  	 * a field - if this constraint can be interpreted for client side use. Default is true.
71  	 * @return the applyClientSide
72  	 */
73  	public Boolean getApplyClientSide() {
74  		return this.applyClientSide;
75  	}
76  
77  	/**
78  	 * @param applyClientSide the applyClientSide to set
79  	 */
80  	public void setApplyClientSide(Boolean applyClientSide) {
81  		this.applyClientSide = applyClientSide;
82  	}
83  	
84  
85      /**
86       * Parameters to be used in the string retrieved by this constraint's labelKey, ordered by number of
87       * the param
88       * @return the validationMessageParams
89       */
90      public List<String> getValidationMessageParams() {
91          return this.validationMessageParams;
92      }
93      
94      /**
95       * Parameters to be used in the string retrieved by this constraint's labelKey, ordered by number of
96       * the param
97       * @return the validationMessageParams
98       */
99      public String[] getValidationMessageParamsArray() {
100         if(this.getValidationMessageParams() != null){
101             return this.getValidationMessageParams().toArray(new String[this.getValidationMessageParams().size()]);
102         }
103         else{
104             return null;
105         }
106 
107     }
108 
109     /**
110      * @param validationMessageParams the validationMessageParams to set
111      */
112     public void setValidationMessageParams(List<String> validationMessageParams) {
113         this.validationMessageParams = validationMessageParams;
114     }
115 	
116 
117 }