View Javadoc
1   /**
2    * Copyright 2005-2014 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.kns.web.ui;
17  
18  import org.apache.commons.lang.StringUtils;
19  import org.kuali.rice.core.api.util.KeyValue;
20  import org.kuali.rice.core.web.format.Formatter;
21  import org.kuali.rice.kew.api.KewApiConstants;
22  import org.kuali.rice.kns.lookup.HtmlData;
23  import org.kuali.rice.krad.datadictionary.mask.Mask;
24  import org.kuali.rice.krad.util.KRADConstants;
25  import org.kuali.rice.krad.util.KRADUtils;
26  import org.kuali.rice.krad.util.ObjectUtils;
27  
28  import java.util.ArrayList;
29  import java.util.HashMap;
30  import java.util.HashSet;
31  import java.util.Iterator;
32  import java.util.List;
33  import java.util.Map;
34  import java.util.Set;
35  
36  /**
37   * Represents a Field (form field or read only)
38   *
39   * @author Kuali Rice Team (rice.collab@kuali.org)
40   *
41   * @deprecated KNS Struts deprecated, use KRAD and the Spring MVC framework.
42   */
43  @Deprecated
44  public class Field implements java.io.Serializable, PropertyRenderingConfigElement {
45      private static final long serialVersionUID = 6549897986355019202L;
46      public static final int DEFAULT_MAXLENGTH = 30;
47      public static final int DEFAULT_SIZE = 30;
48  
49      public static final String HIDDEN = "hidden";
50      public static final String TEXT = "text";
51      public static final String DROPDOWN = "dropdown";
52      public static final String MULTIBOX = "multibox";
53      public static final String MULTISELECT = "multiselect";
54      public static final String RADIO = "radio";
55      public static final String QUICKFINDER = "quickFinder";
56      public static final String LOOKUP_RESULT_ONLY = "lookupresultonly";
57      public static final String DROPDOWN_REFRESH = "dropdown_refresh";
58      public static final String DROPDOWN_SCRIPT = "dropdown_script";
59      public static final String CHECKBOX = "checkbox";
60      public static final String CURRENCY = "currency";
61      public static final String TEXT_AREA = "textarea";
62      public static final String FILE = "file";
63      public static final String IMAGE_SUBMIT = "imagesubmit";
64      public static final String CONTAINER = "container";
65      public static final String KUALIUSER = "kualiuser";
66      public static final String READONLY = "readOnly";
67      public static final String EDITABLE = "editable";
68      public static final String LOOKUP_HIDDEN = "lookuphidden";
69      public static final String LOOKUP_READONLY = "lookupreadonly";
70      public static final String WORKFLOW_WORKGROUP = "workflowworkgroup";
71      public static final String MASKED = "masked";
72      public static final String PARTIALLY_MASKED = "partiallyMasked";
73  
74      public static final String SUB_SECTION_SEPARATOR = "subSectionSeparator";
75      public static final String BLANK_SPACE = "blankSpace";
76      public static final String BUTTON = "button";
77      public static final String LINK = "link";
78  
79      //#START MOVED FROM DOC SEARCH RELATED
80      public static final String DATEPICKER = "datePicker";
81  
82      public static final Set<String> SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES;
83      public static final Set<String> MULTI_VALUE_FIELD_TYPES = new HashSet<String>();
84  
85      static {
86          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES = new HashSet<String>();
87          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(HIDDEN);
88          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(TEXT);
89          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(CURRENCY);
90          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(DROPDOWN);
91          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(RADIO);
92          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(DROPDOWN_REFRESH);
93          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(MULTIBOX);
94          SEARCH_RESULT_DISPLAYABLE_FIELD_TYPES.add(MULTISELECT);
95  
96          MULTI_VALUE_FIELD_TYPES.add(MULTIBOX);
97          MULTI_VALUE_FIELD_TYPES.add(MULTISELECT);
98      }
99  
100     private boolean isIndexedForSearch = true;
101 
102     // following values used in ranged searches
103     private String mainFieldLabel;  // the fieldLabel holds things like "From" and "Ending" and this field holds things like "Total Amount"
104     private Boolean rangeFieldInclusive;
105     private boolean memberOfRange = false;
106     private boolean allowInlineRange = false;
107 
108     // this field is currently a hack to allow us to indicate whether or not the column of data associated
109     // with a particular field will be visible in the result set of a search or not
110     private boolean isColumnVisible = true;
111 
112     //FIXME: this one definitely seems iffy, could be confused with regular fieldType, is there another better name or can this go away?
113     private String fieldDataType = KewApiConstants.SearchableAttributeConstants.DEFAULT_SEARCHABLE_ATTRIBUTE_TYPE_NAME;
114 
115     //used by multibox/select etc
116     private String[] propertyValues;
117 
118     //extra field to skip blank option value (for route node)
119     private boolean skipBlankValidValue = false;
120 
121     //#END DOC SEARCH RELATED
122 
123     private String fieldType;
124 
125     private String fieldLabel;
126     private String fieldHelpUrl;
127     private String propertyName;
128     private String propertyValue;
129 
130     private String alternateDisplayPropertyName;
131     private String alternateDisplayPropertyValue;
132     private String additionalDisplayPropertyName;
133     private String additionalDisplayPropertyValue;
134 
135     private List<KeyValue> fieldValidValues;
136     private String quickFinderClassNameImpl;
137     private String baseLookupUrl;
138 
139     private boolean clear;
140     private boolean dateField;
141     private String fieldConversions;
142     private boolean fieldRequired;
143 
144     private List fieldInactiveValidValues;
145     private Formatter formatter;
146     private boolean highlightField;
147     private boolean isReadOnly;
148     private String lookupParameters;
149     private int maxLength;
150 
151     private HtmlData inquiryURL;
152     private String propertyPrefix;
153     private int size;
154     private boolean upperCase;
155     private int rows;
156     private int cols;
157     private List<Row> containerRows;
158     private String fieldHelpSummary;
159     private String businessObjectClassName;
160     private String fieldHelpName;
161     private String script;
162     private String universalIdAttributeName;
163     private String universalIdValue;
164     private String userIdAttributeName;
165     private String personNameAttributeName;
166     private String personNameValue;
167     private String defaultValue = KRADConstants.EMPTY_STRING;
168     private boolean keyField;
169     private String displayEditMode;
170     private Mask displayMask;
171     private String displayMaskValue;
172     private String encryptedValue;
173     private boolean secure;
174     private String webOnBlurHandler;
175     private String webOnBlurHandlerCallback;
176     protected List<String> webUILeaveFieldFunctionParameters = new ArrayList<String>();
177     private String styleClass;
178     private int formattedMaxLength;
179     private String containerName;
180     private String containerElementName;
181     private List<Field> containerDisplayFields;
182     private boolean isDatePicker;
183     private boolean ranged;
184 
185     private boolean expandedTextArea;
186     private String referencesToRefresh;
187     private int numberOfColumnsForCollection;
188     public String cellAlign;
189     private String inquiryParameters;
190     private boolean fieldDirectInquiryEnabled;
191 
192     public boolean fieldLevelHelpEnabled;
193 
194     public boolean fieldLevelHelpDisabled;
195     public String fieldLevelHelpUrl;
196 
197     private String imageSrc;
198     private String target;
199     private String hrefText;
200 
201     private boolean triggerOnChange;
202 
203 
204     /**
205      * No-args constructor
206      */
207     public Field() {
208         this.fieldLevelHelpEnabled = false;
209         this.triggerOnChange = false;
210     }
211 
212     /**
213      * Constructor that creates an instance of this class to support inquirable
214      *
215      * @param propertyName property attribute of the bean
216      * @param fieldLabel   label of the display field
217      */
218     public Field(String propertyName, String fieldLabel) {
219         this.propertyName = propertyName;
220         this.fieldLabel = fieldLabel;
221         this.isReadOnly = false;
222         this.upperCase = false;
223         this.keyField = false;
224         this.secure = false;
225         this.fieldLevelHelpEnabled = false;
226         this.triggerOnChange = false;
227     }
228 
229     /**
230      * Constructor that creates an instance of this class.
231      *
232      * @param fieldLabel               label of the search criteria field
233      * @param fieldHelpUrl             url of a help link to help instructions
234      * @param fieldType                type of input field for this search criteria
235      * @param clear                    clear action flag
236      * @param propertyName             name of the bean attribute for this search criteria
237      * @param propertyValue            value of the bean attribute
238      * @param fieldRequired            flag to denote if field is required
239      * @param dateField                falg to denot if field should be validated as a date object
240      * @param fieldValidValues         used for drop down list
241      * @param quickFinderClassNameImpl class name to transfer control to quick finder
242      */
243     public Field(String fieldLabel, String fieldHelpUrl, String fieldType, boolean clear, String propertyName, String propertyValue, boolean fieldRequired, boolean dateField, List<KeyValue> fieldValidValues, String quickFinderClassNameImpl) {
244         this.dateField = dateField;
245         this.fieldLabel = fieldLabel;
246         this.fieldHelpUrl = fieldHelpUrl;
247         this.fieldType = fieldType;
248         this.fieldRequired = fieldRequired;
249         this.clear = clear;
250         this.propertyName = propertyName;
251         this.propertyValue = propertyValue;
252         this.fieldValidValues = fieldValidValues;
253         this.quickFinderClassNameImpl = quickFinderClassNameImpl;
254         this.size = DEFAULT_SIZE;
255         this.maxLength = DEFAULT_MAXLENGTH;
256         this.isReadOnly = false;
257         this.upperCase = false;
258         this.keyField = false;
259         this.fieldLevelHelpEnabled = false;
260         this.triggerOnChange = false;
261     }
262 
263     /**
264      * Constructor that creates an instance of this class.
265      *
266      * @param fieldLabel               label of the search criteria field
267      * @param fieldHelpUrl             url of a help link to help instructions
268      * @param fieldType                type of input field for this search criteria
269      * @param clear                    clear action flag
270      * @param propertyName             name of the bean attribute for this search criteria
271      * @param propertyValue            value of the bean attribute
272      * @param fieldRequired            flag to denote if field is required
273      * @param dateField                falg to denot if field should be validated as a date object
274      * @param fieldValidValues         used for drop down list
275      * @param quickFinderClassNameImpl class name to transfer control to quick finder
276      * @param size                     size of the input field
277      * @param maxLength                maxLength of the input field
278      */
279     public Field(String fieldLabel, String fieldHelpUrl, String fieldType, boolean clear, String propertyName, String propertyValue, boolean fieldRequired, boolean dateField, List<KeyValue> fieldValidValues, String quickFinderClassNameImpl, int size, int maxLength) {
280         this.dateField = dateField;
281         this.fieldLabel = fieldLabel;
282         this.fieldHelpUrl = fieldHelpUrl;
283         this.fieldType = fieldType;
284         this.fieldRequired = fieldRequired;
285         this.clear = clear;
286         this.propertyName = propertyName;
287         this.propertyValue = propertyValue;
288         this.fieldValidValues = fieldValidValues;
289         this.upperCase = false;
290         this.quickFinderClassNameImpl = quickFinderClassNameImpl;
291         if (size <= 0) {
292             this.size = DEFAULT_SIZE;
293         } else {
294             this.size = size;
295         }
296         if (size <= 0) {
297             this.size = DEFAULT_MAXLENGTH;
298         } else {
299             this.maxLength = maxLength;
300         }
301         this.isReadOnly = false;
302         this.keyField = false;
303         this.fieldLevelHelpEnabled = false;
304         this.triggerOnChange = false;
305     }
306 
307 
308     /**
309      * Helper method to determine if this is an INPUT type field
310      *
311      * @param fieldType
312      */
313     public static boolean isInputField(String fieldType) {
314         if (StringUtils.isBlank(fieldType)) {
315             return false;
316         }
317         // JJH: Would it be good to create a InputField Set and test to see if the fieldType exists in the set?
318         if (fieldType.equals(Field.DROPDOWN) || fieldType.equals(Field.DROPDOWN_REFRESH) || fieldType.equals(Field.TEXT) || fieldType.equals(Field.RADIO) || fieldType.equals(Field.CURRENCY) || fieldType.equals(Field.KUALIUSER) || fieldType.equals(Field.DROPDOWN_SCRIPT) || fieldType.equals(LOOKUP_READONLY) || fieldType.equals(TEXT_AREA)) {
319             return true;
320         } else {
321             return false;
322         }
323 
324     }
325 
326     /**
327      * @return the imageSrc
328      */
329     public String getImageSrc() {
330         return this.imageSrc;
331     }
332 
333     /**
334      * @param imageSrc the imageSrc to set
335      */
336     public void setImageSrc(String imageSrc) {
337         this.imageSrc = imageSrc;
338     }
339 
340 
341     /**
342      * @return the target
343      */
344     public String getTarget() {
345         return this.target;
346     }
347 
348     /**
349      * @param target the target to set
350      */
351     public void setTarget(String target) {
352         this.target = target;
353     }
354 
355     /**
356      * @return the hrefText
357      */
358     public String getHrefText() {
359         return this.hrefText;
360     }
361 
362     /**
363      * @param hrefText the hrefText to set
364      */
365     public void setHrefText(String hrefText) {
366         this.hrefText = hrefText;
367     }
368 
369     /**
370      * For container fields (i.e. fieldType.equals(CONTAINER)) with MV lookups enabled, the DD defined objectLabel of the class on which a multiple value lookup is performed.
371      * The user friendly name
372      */
373     private String multipleValueLookupClassLabel;
374     /**
375      * For container fields (i.e. fieldType.equals(CONTAINER)) with MV lookups enabled, this is the class to perform a lookup upon
376      */
377     private String multipleValueLookupClassName;
378     /**
379      * For container fields (i.e. fieldType.equals(CONTAINER)) with MV lookups enabled, this is the name of the collection on the doc on which the
380      * MV lookup is performed
381      */
382     private String multipleValueLookedUpCollectionName;
383 
384     public HtmlData getInquiryURL() {
385         return inquiryURL;
386     }
387 
388     public void setInquiryURL(HtmlData propertyURL) {
389         this.inquiryURL = propertyURL;
390     }
391 
392     public int getNumberOfColumnsForCollection() {
393         return numberOfColumnsForCollection;
394     }
395 
396     public void setNumberOfColumnsForCollection(int numberOfColumnsForCollection) {
397         this.numberOfColumnsForCollection = numberOfColumnsForCollection;
398     }
399 
400     public boolean isDatePicker() {
401         return isDatePicker;
402     }
403 
404     public void setDatePicker(boolean isDatePicker) {
405         this.isDatePicker = isDatePicker;
406     }
407 
408     public boolean isRanged() {
409         return this.ranged;
410     }
411 
412     public void setRanged(boolean ranged) {
413         this.ranged = ranged;
414     }
415 
416     public boolean isExpandedTextArea() {
417         return expandedTextArea;
418     }
419 
420     public void setExpandedTextArea(boolean expandedTextArea) {
421         this.expandedTextArea = expandedTextArea;
422     }
423 
424     /**
425      * @return Returns the defaultValue.
426      */
427     public String getDefaultValue() {
428         return defaultValue;
429     }
430 
431     /**
432      * @param defaultValue The defaultValue to set.
433      */
434     public void setDefaultValue(String defaultValue) {
435         this.defaultValue = defaultValue;
436     }
437 
438     public boolean containsBOData() {
439         if (StringUtils.isNotBlank(this.propertyName)) {
440             return true;
441         } else {
442             return false;
443         }
444     }
445 
446     /**
447      * @return Returns the CHECKBOX.
448      */
449     public String getCHECKBOX() {
450         return CHECKBOX;
451     }
452 
453     /**
454      * @return Returns the CONTAINER.
455      */
456     public String getCONTAINER() {
457         return CONTAINER;
458     }
459 
460     /**
461      * @return Returns the dROPDOWN.
462      */
463     public String getDROPDOWN() {
464         return DROPDOWN;
465     }
466 
467     /**
468      * @return Returns the TEXT_AREA.
469      */
470     public String getTEXT_AREA() {
471         return TEXT_AREA;
472     }
473 
474     /**
475      * @return Returns the DROPDOWN_REFRESH
476      */
477     public String getDROPDOWN_REFRESH() {
478         return DROPDOWN_REFRESH;
479     }
480 
481     /**
482      * @return Returns DROPDOWN_SCRIPT
483      */
484     public String getDROPDOWN_SCRIPT() {
485         return DROPDOWN_SCRIPT;
486     }
487 
488     /**
489      * @return Returns MULTISELECT
490      */
491     public String getMULTISELECT() {
492         return MULTISELECT;
493     }
494 
495     /**
496      * @return Returns KUALIUSER
497      */
498     public String getKUALIUSER() {
499         return KUALIUSER;
500     }
501 
502     /**
503      * @return Returns the FILE.
504      */
505     public String getFILE() {
506         return FILE;
507     }
508 
509     /**
510      * @return Returns SUB_SECTION_SEPARATOR
511      */
512     public String getSUB_SECTION_SEPARATOR() {
513         return SUB_SECTION_SEPARATOR;
514     }
515 
516     /**
517      * @return Returns BLANK_SPACE
518      */
519     public String getBLANK_SPACE() {
520         return BLANK_SPACE;
521     }
522 
523     /**
524      * @return the BUTTON
525      */
526     public String getBUTTON() {
527         return BUTTON;
528     }
529 
530     /**
531      * @return the LINK
532      */
533     public String getLINK() {
534         return LINK;
535     }
536 
537 
538     /**
539      * @return Returns the fieldConversions.
540      */
541     public String getFieldConversions() {
542         return fieldConversions;
543     }
544 
545 
546     public Map<String, String> getFieldConversionMap() {
547         Map<String, String> fieldConversionMap = new HashMap<String, String>();
548         if (!StringUtils.isBlank(fieldConversions)) {
549             String[] splitFieldConversions = fieldConversions.split(KRADConstants.FIELD_CONVERSIONS_SEPARATOR);
550             for (String fieldConversion : splitFieldConversions) {
551                 if (!StringUtils.isBlank(fieldConversion)) {
552                     String[] splitFieldConversion = fieldConversion.split(KRADConstants.FIELD_CONVERSION_PAIR_SEPARATOR, 2);
553                     String originalFieldName = splitFieldConversion[0];
554                     String convertedFieldName = "";
555                     if (splitFieldConversion.length > 1) {
556                         convertedFieldName = splitFieldConversion[1];
557                     }
558                     fieldConversionMap.put(originalFieldName, convertedFieldName);
559                 }
560             }
561         }
562         return fieldConversionMap;
563     }
564 
565 
566     /**
567      * @return Returns the fieldHelpUrl.
568      */
569     public String getFieldHelpUrl() {
570         return fieldHelpUrl;
571     }
572 
573     /**
574      * @return Returns the fieldLabel.
575      */
576     public String getFieldLabel() {
577         return fieldLabel;
578     }
579 
580     /**
581      * @return Returns the fieldType.
582      */
583     public String getFieldType() {
584         return fieldType;
585     }
586 
587     /**
588      * @return Returns the fieldValidValues.
589      */
590     public List<KeyValue> getFieldValidValues() {
591         return fieldValidValues;
592     }
593 
594 
595     /**
596      * @return Returns the formatter.
597      */
598     @Override
599     public Formatter getFormatter() {
600         return formatter;
601     }
602 
603     /**
604      * @return Returns the hIDDEN.
605      */
606     public String getHIDDEN() {
607         return HIDDEN;
608     }
609 
610 
611     /**
612      * @return Returns the lookupParameters.
613      */
614     public String getLookupParameters() {
615         return lookupParameters;
616     }
617 
618     /**
619      * @return Returns the maxLength.
620      */
621     public int getMaxLength() {
622         return maxLength;
623     }
624 
625     /**
626      * @return Returns the propertyName.
627      */
628     @Override
629     public String getPropertyName() {
630         return propertyName;
631     }
632 
633     /**
634      * @return Returns the propertyValue.
635      */
636     @Override
637     public String getPropertyValue() {
638         if (propertyValue == null) {
639             propertyValue = KRADConstants.EMPTY_STRING;
640         }
641 
642         return propertyValue;
643     }
644 
645 
646     /**
647      * Gets the propertyPrefix attribute.
648      *
649      * @return Returns the propertyPrefix.
650      */
651     public String getPropertyPrefix() {
652         return propertyPrefix;
653     }
654 
655     /**
656      * Sets the propertyPrefix attribute value.
657      *
658      * @param propertyPrefix The propertyPrefix to set.
659      */
660     public void setPropertyPrefix(String propertyPrefix) {
661         this.propertyPrefix = propertyPrefix;
662     }
663 
664     /**
665      * @return Returns the qUICKFINDER.
666      */
667     public String getQUICKFINDER() {
668         return QUICKFINDER;
669     }
670 
671     /**
672      * @return Returns the quickFinderClassNameImpl.
673      */
674     public String getQuickFinderClassNameImpl() {
675         return quickFinderClassNameImpl;
676     }
677 
678     /**
679      * @return Returns the rADIO.
680      */
681     public String getRADIO() {
682         return RADIO;
683     }
684 
685     /**
686      * @return Returns the size.
687      */
688     public int getSize() {
689         return size;
690     }
691 
692     /**
693      * @return Returns the TEXT.
694      */
695     public String getTEXT() {
696         return TEXT;
697     }
698 
699     public String getCURRENCY() {
700         return CURRENCY;
701     }
702 
703     /**
704      * @return Returns the iMAGE_SUBMIT.
705      */
706     public String getIMAGE_SUBMIT() {
707         return IMAGE_SUBMIT;
708     }
709 
710     /**
711      * @return Returns the LOOKUP_HIDDEN.
712      */
713     public String getLOOKUP_HIDDEN() {
714         return LOOKUP_HIDDEN;
715     }
716 
717     /**
718      * @return Returns the LOOKUP_READONLY.
719      */
720     public String getLOOKUP_READONLY() {
721         return LOOKUP_READONLY;
722     }
723 
724     /**
725      * @return Returns the WORKFLOW_WORKGROUP.
726      */
727     public String getWORKFLOW_WORKGROUP() {
728         return WORKFLOW_WORKGROUP;
729     }
730 
731 
732     /**
733      * @return Returns the clear.
734      */
735     public boolean isClear() {
736         return clear;
737     }
738 
739     /**
740      * @return Returns the dateField.
741      */
742     public boolean isDateField() {
743         return dateField;
744     }
745 
746     /**
747      * @return Returns the fieldRequired.
748      */
749     public boolean isFieldRequired() {
750         return fieldRequired;
751     }
752 
753 
754     /**
755      * @return Returns the highlightField.
756      */
757     public boolean isHighlightField() {
758         return highlightField;
759     }
760 
761     /**
762      * @return Returns the isReadOnly.
763      */
764     public boolean isReadOnly() {
765         return isReadOnly;
766     }
767 
768     /**
769      * @return Returns the upperCase.
770      */
771     public boolean isUpperCase() {
772         return upperCase;
773     }
774 
775     /**
776      * @param clear The clear to set.
777      */
778     public void setClear(boolean clear) {
779         this.clear = clear;
780     }
781 
782     /**
783      * @param dateField The dateField to set.
784      */
785     public void setDateField(boolean dateField) {
786         this.dateField = dateField;
787     }
788 
789     /**
790      * @param fieldConversionsMap The fieldConversions to set.
791      */
792     public void setFieldConversions(Map<String,String> fieldConversionsMap) {
793         List<String> keyValuePairStrings = new ArrayList<String>();
794         for (String key : fieldConversionsMap.keySet()) {
795             String mappedField = fieldConversionsMap.get(key);
796             keyValuePairStrings.add(key + ":" + mappedField) ;
797         }
798         String commaDelimitedConversions = StringUtils.join(keyValuePairStrings,",");
799         setFieldConversions(commaDelimitedConversions );
800     }
801 
802 
803     /**
804      * @param fieldConversions The fieldConversions to set.
805      */
806     public void setFieldConversions(String fieldConversions) {
807         this.fieldConversions = fieldConversions;
808     }
809 
810     public void appendFieldConversions(String fieldConversions) {
811         if (StringUtils.isNotBlank(fieldConversions)) {
812             this.fieldConversions = this.fieldConversions + "," + fieldConversions;
813         }
814     }
815 
816     /**
817      * @param fieldHelpUrl The fieldHelpUrl to set.
818      */
819     public void setFieldHelpUrl(String fieldHelpUrl) {
820         this.fieldHelpUrl = fieldHelpUrl;
821     }
822 
823     /**
824      * @param fieldLabel The fieldLabel to set.
825      */
826     public void setFieldLabel(String fieldLabel) {
827         this.fieldLabel = fieldLabel;
828     }
829 
830     /**
831      * @param fieldRequired The fieldRequired to set.
832      */
833     public void setFieldRequired(boolean fieldRequired) {
834         this.fieldRequired = fieldRequired;
835     }
836 
837     /**
838      * @param fieldType The fieldType to set.
839      */
840     public void setFieldType(String fieldType) {
841         this.fieldType = fieldType;
842     }
843 
844     /**
845      * @param fieldValidValues The fieldValidValues to set.
846      */
847     public void setFieldValidValues(List<KeyValue> fieldValidValues) {
848         this.fieldValidValues = fieldValidValues;
849     }
850 
851     public boolean getHasBlankValidValue() {
852         if (fieldValidValues == null) {
853             throw new IllegalStateException("Valid values are undefined");
854         }
855         for (KeyValue keyLabel : fieldValidValues) {
856             if (keyLabel.getKey().equals("")) {
857                 return true;
858             }
859         }
860         return false;
861     }
862 
863     /**
864      * @param formatter The formatter to set.
865      */
866     @Override
867     public void setFormatter(Formatter formatter) {
868         this.formatter = formatter;
869     }
870 
871 
872     /**
873      * @param highlightField The highlightField to set.
874      */
875     public void setHighlightField(boolean highlightField) {
876         this.highlightField = highlightField;
877     }
878 
879     /**
880      * @param lookupParametersMap The lookupParameters to set.
881      */
882     public void setLookupParameters(Map lookupParametersMap) {
883         String lookupParameterString = "";
884         for (Iterator iter = lookupParametersMap.keySet().iterator(); iter.hasNext();) {
885             String field = (String) iter.next();
886             String mappedField = (String) lookupParametersMap.get(field);
887             lookupParameterString += field + ":" + mappedField;
888             if (iter.hasNext()) {
889                 lookupParameterString += ",";
890             }
891         }
892         setLookupParameters(lookupParameterString);
893     }
894 
895 
896     /**
897      * @param lookupParameters The lookupParameters to set.
898      */
899     public void setLookupParameters(String lookupParameters) {
900         this.lookupParameters = lookupParameters;
901     }
902 
903     /**
904      * This method appends the passed-in lookupParameters to the existing
905      *
906      * @param lookupParameters
907      */
908     public void appendLookupParameters(String lookupParameters) {
909         if (StringUtils.isNotBlank(lookupParameters)) {
910             if (StringUtils.isBlank(this.lookupParameters)) {
911                 this.lookupParameters = lookupParameters;
912             } else {
913                 this.lookupParameters = this.lookupParameters + "," + lookupParameters;
914             }
915         }
916     }
917 
918     /**
919      * @param maxLength The maxLength to set.
920      */
921     public void setMaxLength(int maxLength) {
922         this.maxLength = maxLength;
923     }
924 
925     /**
926      * @param propertyName The propertyName to set.
927      */
928     @Override
929     public void setPropertyName(String propertyName) {
930         String newPropertyName = KRADConstants.EMPTY_STRING;
931         if (propertyName != null) {
932             newPropertyName = propertyName;
933         }
934         this.propertyName = newPropertyName;
935     }
936 
937     /**
938      * @param propertyValue The propertyValue to set.
939      */
940     public void setPropertyValue(Object propertyValue) {
941         String newPropertyValue = ObjectUtils.formatPropertyValue(propertyValue);
942 
943         if (isUpperCase()) {
944             newPropertyValue = newPropertyValue.toUpperCase();
945         }
946 
947         this.propertyValue = newPropertyValue;
948     }
949 
950     /**
951      * @param quickFinderClassNameImpl The quickFinderClassNameImpl to set.
952      */
953     public void setQuickFinderClassNameImpl(String quickFinderClassNameImpl) {
954         this.quickFinderClassNameImpl = quickFinderClassNameImpl;
955     }
956 
957     /**
958      * @param isReadOnly The isReadOnly to set.
959      */
960     public void setReadOnly(boolean isReadOnly) {
961         this.isReadOnly = isReadOnly;
962     }
963 
964     /**
965      * @param size The size to set.
966      */
967     public void setSize(int size) {
968         this.size = size;
969     }
970 
971     /**
972      * @param upperCase The upperCase to set.
973      */
974     public void setUpperCase(boolean upperCase) {
975         this.upperCase = upperCase;
976     }
977 
978 
979     /**
980      * @return Returns the cols.
981      */
982     public int getCols() {
983         return cols;
984     }
985 
986 
987     /**
988      * @param cols The cols to set.
989      */
990     public void setCols(int cols) {
991         this.cols = cols;
992     }
993 
994 
995     /**
996      * @return Returns the rows.
997      */
998     public int getRows() {
999         return rows;
1000     }
1001 
1002 
1003     /**
1004      * @param rows The rows to set.
1005      */
1006     public void setRows(int rows) {
1007         this.rows = rows;
1008     }
1009 
1010 
1011     /**
1012      * @return Returns the containerRows.
1013      */
1014     public List<Row> getContainerRows() {
1015         return containerRows;
1016     }
1017 
1018 
1019     /**
1020      * @param containerRows The containerRows to set.
1021      */
1022     public void setContainerRows(List<Row> containerRows) {
1023         this.containerRows = containerRows;
1024     }
1025 
1026 
1027     /**
1028      * @return Returns the businessObjectClassName.
1029      */
1030     public String getBusinessObjectClassName() {
1031         return businessObjectClassName;
1032     }
1033 
1034 
1035     /**
1036      * @param businessObjectClassName The businessObjectClassName to set.
1037      */
1038     public void setBusinessObjectClassName(String businessObjectClassName) {
1039         this.businessObjectClassName = businessObjectClassName;
1040     }
1041 
1042 
1043     /**
1044      * @return Returns the fieldHelpSummary.
1045      */
1046     public String getFieldHelpSummary() {
1047         return fieldHelpSummary;
1048     }
1049 
1050 
1051     /**
1052      * @param fieldHelpSummary The fieldHelpSummary to set.
1053      */
1054     public void setFieldHelpSummary(String fieldHelpSummary) {
1055         this.fieldHelpSummary = fieldHelpSummary;
1056     }
1057 
1058 
1059     /**
1060      * @return Returns the fieldHelpName.
1061      */
1062     public String getFieldHelpName() {
1063         return fieldHelpName;
1064     }
1065 
1066 
1067     /**
1068      * @param fieldHelpName The fieldHelpName to set.
1069      */
1070     public void setFieldHelpName(String fieldHelpName) {
1071         this.fieldHelpName = fieldHelpName;
1072     }
1073 
1074     /**
1075      * Gets the script attribute.
1076      *
1077      * @return Returns the script.
1078      */
1079     public String getScript() {
1080         return script;
1081     }
1082 
1083     /**
1084      * Sets the script attribute value.
1085      *
1086      * @param script The script to set.
1087      */
1088     public void setScript(String script) {
1089         this.script = script;
1090     }
1091 
1092     /**
1093      * Gets the personNameAttributeName attribute.
1094      *
1095      * @return Returns the personNameAttributeName.
1096      */
1097     public String getPersonNameAttributeName() {
1098         return personNameAttributeName;
1099     }
1100 
1101     /**
1102      * Sets the personNameAttributeName attribute value.
1103      *
1104      * @param personNameAttributeName The personNameAttributeName to set.
1105      */
1106     public void setPersonNameAttributeName(String personNameAttributeName) {
1107         this.personNameAttributeName = personNameAttributeName;
1108     }
1109 
1110     /**
1111      * Gets the universalIdAttributeName attribute.
1112      *
1113      * @return Returns the universalIdAttributeName.
1114      */
1115     public String getUniversalIdAttributeName() {
1116         return universalIdAttributeName;
1117     }
1118 
1119     /**
1120      * Sets the universalIdAttributeName attribute value.
1121      *
1122      * @param universalIdAttributeName The universalIdAttributeName to set.
1123      */
1124     public void setUniversalIdAttributeName(String universalIdAttributeName) {
1125         this.universalIdAttributeName = universalIdAttributeName;
1126     }
1127 
1128     /**
1129      * Gets the userIdAttributeName attribute.
1130      *
1131      * @return Returns the userIdAttributeName.
1132      */
1133     public String getUserIdAttributeName() {
1134         return userIdAttributeName;
1135     }
1136 
1137     /**
1138      * Sets the userIdAttributeName attribute value.
1139      *
1140      * @param userIdAttributeName The userIdAttributeName to set.
1141      */
1142     public void setUserIdAttributeName(String userIdAttributeName) {
1143         this.userIdAttributeName = userIdAttributeName;
1144     }
1145 
1146     /**
1147      * Gets the keyField attribute.
1148      *
1149      * @return Returns the keyField.
1150      */
1151     public boolean isKeyField() {
1152         return keyField;
1153     }
1154 
1155     /**
1156      * Sets the keyField attribute value.
1157      *
1158      * @param keyField The keyField to set.
1159      */
1160     public void setKeyField(boolean keyField) {
1161         this.keyField = keyField;
1162     }
1163 
1164 
1165     /**
1166      * Gets the displayEditMode attribute.
1167      *
1168      * @return Returns the displayEditMode.
1169      */
1170     public String getDisplayEditMode() {
1171         return displayEditMode;
1172     }
1173 
1174     /**
1175      * Sets the displayEditMode attribute value.
1176      *
1177      * @param displayEditMode The displayEditMode to set.
1178      */
1179     public void setDisplayEditMode(String displayEditMode) {
1180         this.displayEditMode = displayEditMode;
1181     }
1182 
1183     /**
1184      * Gets the displayMask attribute.
1185      *
1186      * @return Returns the displayMask.
1187      */
1188     public Mask getDisplayMask() {
1189         return displayMask;
1190     }
1191 
1192     /**
1193      * Sets the displayMask attribute value.
1194      *
1195      * @param displayMask The displayMask to set.
1196      */
1197     public void setDisplayMask(Mask displayMask) {
1198         this.displayMask = displayMask;
1199     }
1200 
1201     /**
1202      * Gets the displayMaskValue attribute.
1203      *
1204      * @return Returns the displayMaskValue.
1205      */
1206     public String getDisplayMaskValue() {
1207         return displayMaskValue;
1208     }
1209 
1210     /**
1211      * Sets the displayMaskValue attribute value.
1212      *
1213      * @param displayMaskValue The displayMaskValue to set.
1214      */
1215     public void setDisplayMaskValue(String displayMaskValue) {
1216         this.displayMaskValue = displayMaskValue;
1217     }
1218 
1219     /**
1220      * Gets the encryptedValue attribute.
1221      *
1222      * @return Returns the encryptedValue.
1223      */
1224     public String getEncryptedValue() {
1225         return encryptedValue;
1226     }
1227 
1228     /**
1229      * Sets the encryptedValue attribute value.
1230      *
1231      * @param encryptedValue The encryptedValue to set.
1232      */
1233     public void setEncryptedValue(String encryptedValue) {
1234         this.encryptedValue = encryptedValue;
1235     }
1236 
1237     /**
1238      * Gets the secure attribute.
1239      *
1240      * @return Returns the secure.
1241      */
1242     public boolean isSecure() {
1243         return secure;
1244     }
1245 
1246     /**
1247      * Sets the secure attribute value.
1248      *
1249      * @param secure The secure to set.
1250      */
1251     public void setSecure(boolean secure) {
1252         this.secure = secure;
1253     }
1254 
1255     /**
1256      * Returns the method name of a function present in the page which should be called
1257      * when the user tabs away from the field.
1258      *
1259      * @return
1260      */
1261     public String getWebOnBlurHandler() {
1262         return webOnBlurHandler;
1263     }
1264 
1265     public void setWebOnBlurHandler(String webOnBlurHandler) {
1266         this.webOnBlurHandler = webOnBlurHandler;
1267     }
1268 
1269     /**
1270      * Returns the method name of a function present in the page which should be called
1271      * after an AJAX call from the onblur handler.
1272      *
1273      * @return
1274      */
1275     public String getWebOnBlurHandlerCallback() {
1276         return webOnBlurHandlerCallback;
1277     }
1278 
1279     public void setWebOnBlurHandlerCallback(String webOnBlurHandlerCallback) {
1280         this.webOnBlurHandlerCallback = webOnBlurHandlerCallback;
1281     }
1282 
1283     /**
1284      * Sets the propertyValue attribute value.
1285      *
1286      * @param propertyValue The propertyValue to set.
1287      */
1288     @Override
1289     public void setPropertyValue(String propertyValue) {
1290         this.propertyValue = propertyValue;
1291     }
1292 
1293     @Override
1294     public String toString() {
1295         return "[" + getFieldType() + "] " + getPropertyName() + " = '" + getPropertyValue() + "'";
1296     }
1297 
1298     public String getStyleClass() {
1299         return styleClass;
1300     }
1301 
1302     public void setStyleClass(String styleClass) {
1303         this.styleClass = styleClass;
1304     }
1305 
1306     public int getFormattedMaxLength() {
1307         return formattedMaxLength;
1308     }
1309 
1310     public void setFormattedMaxLength(int formattedMaxLength) {
1311         this.formattedMaxLength = formattedMaxLength;
1312     }
1313 
1314     public String getContainerName() {
1315         return containerName;
1316     }
1317 
1318     public void setContainerName(String containerName) {
1319         this.containerName = containerName;
1320     }
1321 
1322     /**
1323      * Gets the containerElementName attribute.
1324      *
1325      * @return Returns the containerElementName.
1326      */
1327     public String getContainerElementName() {
1328         return containerElementName;
1329     }
1330 
1331     /**
1332      * Sets the containerElementName attribute value.
1333      *
1334      * @param containerElementName The containerElementName to set.
1335      */
1336     public void setContainerElementName(String containerElementName) {
1337         this.containerElementName = containerElementName;
1338     }
1339 
1340     /**
1341      * Gets the containerDisplayFields attribute.
1342      *
1343      * @return Returns the containerDisplayFields.
1344      */
1345     public List<Field> getContainerDisplayFields() {
1346         return containerDisplayFields;
1347     }
1348 
1349     /**
1350      * Sets the containerDisplayFields attribute value.
1351      *
1352      * @param containerDisplayFields The containerDisplayFields to set.
1353      */
1354     public void setContainerDisplayFields(List<Field> containerDisplayFields) {
1355         this.containerDisplayFields = containerDisplayFields;
1356     }
1357 
1358     public String getReferencesToRefresh() {
1359         return referencesToRefresh;
1360     }
1361 
1362     public void setReferencesToRefresh(String referencesToRefresh) {
1363         this.referencesToRefresh = referencesToRefresh;
1364     }
1365 
1366     /**
1367      * The DD defined objectLabel of the class on which a multiple value lookup is performed
1368      *
1369      * @return The DD defined objectLabel of the class on which a multiple value lookup is performed
1370      */
1371     public String getMultipleValueLookupClassLabel() {
1372         return multipleValueLookupClassLabel;
1373     }
1374 
1375     /**
1376      * The DD defined objectLabel of the class on which a multiple value lookup is performed
1377      *
1378      * @param multipleValueLookupClassLabel The DD defined objectLabel of the class on which a multiple value lookup is performed
1379      */
1380     public void setMultipleValueLookupClassLabel(String multipleValueLookupClassLabel) {
1381         this.multipleValueLookupClassLabel = multipleValueLookupClassLabel;
1382     }
1383 
1384     /**
1385      * For container fields (i.e. fieldType.equals(CONTAINER)) with MV lookups enabled, this is the name of the collection on the doc on which the
1386      * MV lookup is performed
1387      *
1388      * @return
1389      */
1390     public String getMultipleValueLookedUpCollectionName() {
1391         return multipleValueLookedUpCollectionName;
1392     }
1393 
1394     /**
1395      * For container fields (i.e. fieldType.equals(CONTAINER)) with MV lookups enabled, this is the name of the collection on the doc on which the
1396      * MV lookup is performed
1397      *
1398      * @param multipleValueLookedUpCollectionName
1399      *
1400      */
1401     public void setMultipleValueLookedUpCollectionName(String multipleValueLookedUpCollectionName) {
1402         this.multipleValueLookedUpCollectionName = multipleValueLookedUpCollectionName;
1403     }
1404 
1405     /**
1406      * For container fields (i.e. fieldType.equals(CONTAINER)) with MV lookups enabled, this is the class to perform a lookup upon
1407      *
1408      * @return
1409      */
1410     public String getMultipleValueLookupClassName() {
1411         return multipleValueLookupClassName;
1412     }
1413 
1414     /**
1415      * For container fields (i.e. fieldType.equals(CONTAINER)) with MV lookups enabled, this is the class to perform a lookup upon
1416      *
1417      * @param multipleValueLookupClassName
1418      */
1419     public void setMultipleValueLookupClassName(String multipleValueLookupClassName) {
1420         this.multipleValueLookupClassName = multipleValueLookupClassName;
1421     }
1422 
1423     /**
1424      * The td alignment to use for the Field.
1425      *
1426      * @return the cellAlign
1427      */
1428     public String getCellAlign() {
1429         return cellAlign;
1430     }
1431 
1432     /**
1433      * Sets the td alignment for the Field.
1434      *
1435      * @param cellAlign the cellAlign to set
1436      */
1437     public void setCellAlign(String cellAlign) {
1438         this.cellAlign = cellAlign;
1439     }
1440 
1441     public String getInquiryParameters() {
1442         return this.inquiryParameters;
1443     }
1444 
1445     public void setInquiryParameters(String inquiryParameters) {
1446         this.inquiryParameters = inquiryParameters;
1447     }
1448 
1449     /**
1450      * Returns whether field level help is enabled for this field.  If this value is true, then the field level help will be enabled.
1451      * If false, then whether a field is enabled is determined by the value returned by {@link #isFieldLevelHelpDisabled()} and the system-wide
1452      * parameter setting.  Note that if a field is read-only, that may cause field-level help to not be rendered.
1453      *
1454      * @return true if field level help is enabled, false if the value of this method should NOT be used to determine whether this method's return value
1455      *         affects the enablement of field level help
1456      */
1457     public boolean isFieldLevelHelpEnabled() {
1458         return this.fieldLevelHelpEnabled;
1459     }
1460 
1461     public void setFieldLevelHelpEnabled(boolean fieldLevelHelpEnabled) {
1462         this.fieldLevelHelpEnabled = fieldLevelHelpEnabled;
1463     }
1464 
1465     /**
1466      * Returns whether field level help is disabled for this field.  If this value is true and {@link #isFieldLevelHelpEnabled()} returns false,
1467      * then the field level help will not be rendered.  If both this and {@link #isFieldLevelHelpEnabled()} return false, then the system-wide
1468      * setting will determine whether field level help is enabled.  Note that if a field is read-only, that may cause field-level help to not be rendered.
1469      *
1470      * @return true if field level help is disabled, false if the value of this method should NOT be used to determine whether this method's return value
1471      *         affects the enablement of field level help
1472      */
1473     public boolean isFieldLevelHelpDisabled() {
1474         return this.fieldLevelHelpDisabled;
1475     }
1476 
1477     public void setFieldLevelHelpDisabled(boolean fieldLevelHelpDisabled) {
1478         this.fieldLevelHelpDisabled = fieldLevelHelpDisabled;
1479     }
1480 
1481     public boolean isFieldDirectInquiryEnabled() {
1482         return this.fieldDirectInquiryEnabled;
1483     }
1484 
1485     public void setFieldDirectInquiryEnabled(boolean fieldDirectInquiryEnabled) {
1486         this.fieldDirectInquiryEnabled = fieldDirectInquiryEnabled;
1487     }
1488 
1489     /**
1490      * @return the fieldInactiveValidValues
1491      */
1492     public List getFieldInactiveValidValues() {
1493         return this.fieldInactiveValidValues;
1494     }
1495 
1496     /**
1497      * @param fieldInactiveValidValues the fieldInactiveValidValues to set
1498      */
1499     public void setFieldInactiveValidValues(List fieldInactiveValidValues) {
1500         this.fieldInactiveValidValues = fieldInactiveValidValues;
1501     }
1502 
1503     public boolean isTriggerOnChange() {
1504         return this.triggerOnChange;
1505     }
1506 
1507     public void setTriggerOnChange(boolean triggerOnChange) {
1508         this.triggerOnChange = triggerOnChange;
1509     }
1510 
1511     public boolean getHasLookupable() {
1512         if (StringUtils.isBlank(quickFinderClassNameImpl) ) {
1513             return false;
1514         } else {
1515             return true;
1516         }
1517     }
1518 
1519     @Override
1520     public String getAlternateDisplayPropertyName() {
1521         return this.alternateDisplayPropertyName;
1522     }
1523 
1524     @Override
1525     public void setAlternateDisplayPropertyName(String alternateDisplayPropertyName) {
1526         this.alternateDisplayPropertyName = alternateDisplayPropertyName;
1527     }
1528 
1529     public String getAlternateDisplayPropertyValue() {
1530         return this.alternateDisplayPropertyValue;
1531     }
1532 
1533     public void setAlternateDisplayPropertyValue(Object alternateDisplayPropertyValue) {
1534         String formattedValue = ObjectUtils.formatPropertyValue(alternateDisplayPropertyValue);
1535 
1536         this.alternateDisplayPropertyValue = formattedValue;
1537     }
1538 
1539     @Override
1540     public String getAdditionalDisplayPropertyName() {
1541         return this.additionalDisplayPropertyName;
1542     }
1543 
1544     @Override
1545     public void setAdditionalDisplayPropertyName(String additionalDisplayPropertyName) {
1546         this.additionalDisplayPropertyName = additionalDisplayPropertyName;
1547     }
1548 
1549     public String getAdditionalDisplayPropertyValue() {
1550         return this.additionalDisplayPropertyValue;
1551     }
1552 
1553     public void setAdditionalDisplayPropertyValue(Object additionalDisplayPropertyValue) {
1554         String formattedValue = ObjectUtils.formatPropertyValue(additionalDisplayPropertyValue);
1555 
1556         this.additionalDisplayPropertyValue = formattedValue;
1557     }
1558 
1559     //#BEGIN DOC SEARCH RELATED
1560     public boolean isIndexedForSearch() {
1561         return this.isIndexedForSearch;
1562     }
1563 
1564     public void setIndexedForSearch(boolean indexedForSearch) {
1565         this.isIndexedForSearch = indexedForSearch;
1566     }
1567 
1568     public String getMainFieldLabel() {
1569         return this.mainFieldLabel;
1570     }
1571 
1572     public Boolean getRangeFieldInclusive() {
1573         return this.rangeFieldInclusive;
1574     }
1575 
1576     public boolean isMemberOfRange() {
1577         return this.memberOfRange;
1578     }
1579 
1580     public void setMainFieldLabel(String mainFieldLabel) {
1581         this.mainFieldLabel = mainFieldLabel;
1582     }
1583 
1584     public void setRangeFieldInclusive(Boolean rangeFieldInclusive) {
1585         this.rangeFieldInclusive = rangeFieldInclusive;
1586     }
1587 
1588     public void setMemberOfRange(boolean memberOfRange) {
1589         this.memberOfRange = memberOfRange;
1590     }
1591 
1592     public boolean isInclusive() {
1593         return (rangeFieldInclusive == null) ? true : rangeFieldInclusive;
1594     }
1595 
1596     public String getFieldDataType() {
1597         return this.fieldDataType;
1598     }
1599 
1600     public void setFieldDataType(String fieldDataType) {
1601         this.fieldDataType = fieldDataType;
1602     }
1603 
1604     public boolean isColumnVisible() {
1605         return this.isColumnVisible;
1606     }
1607 
1608     public void setColumnVisible(boolean isColumnVisible) {
1609         this.isColumnVisible = isColumnVisible;
1610     }
1611 
1612     public String[] getPropertyValues() {
1613         return this.propertyValues;
1614     }
1615 
1616     public void setPropertyValues(String[] propertyValues) {
1617         this.propertyValues = propertyValues;
1618     }
1619 
1620     /**
1621      * @return the skipBlankValidValue
1622      */
1623     public boolean isSkipBlankValidValue() {
1624         return this.skipBlankValidValue;
1625     }
1626 
1627     /**
1628      * @param skipBlankValidValue the skipBlankValidValue to set
1629      */
1630     public void setSkipBlankValidValue(boolean skipBlankValidValue) {
1631         this.skipBlankValidValue = skipBlankValidValue;
1632     }
1633 
1634     /**
1635      * @return the allowInlineRange
1636      */
1637     public boolean isAllowInlineRange() {
1638         return this.allowInlineRange;
1639     }
1640 
1641     /**
1642      * @param allowInlineRange the allowInlineRange to set
1643      */
1644     public void setAllowInlineRange(boolean allowInlineRange) {
1645         this.allowInlineRange = allowInlineRange;
1646     }
1647 
1648     public String getUniversalIdValue() {
1649         return this.universalIdValue;
1650     }
1651 
1652     public void setUniversalIdValue(String universalIdValue) {
1653         this.universalIdValue = universalIdValue;
1654     }
1655 
1656     public String getPersonNameValue() {
1657         return this.personNameValue;
1658     }
1659 
1660     public void setPersonNameValue(String personNameValue) {
1661         this.personNameValue = personNameValue;
1662     }
1663 
1664     public String getBaseLookupUrl() {
1665         return this.baseLookupUrl;
1666     }
1667 
1668     public void setBaseLookupUrl(String baseLookupURL) {
1669         this.baseLookupUrl = baseLookupURL;
1670     }
1671 
1672     public String getFieldLevelHelpUrl() {
1673         return fieldLevelHelpUrl;
1674     }
1675 
1676     public void setFieldLevelHelpUrl(String fieldLevelHelpUrl) {
1677         this.fieldLevelHelpUrl = fieldLevelHelpUrl;
1678     }
1679 
1680     /**
1681      * @return the webUILeaveFieldFunctionParameters
1682      */
1683     public List<String> getWebUILeaveFieldFunctionParameters() {
1684         return this.webUILeaveFieldFunctionParameters;
1685     }
1686 
1687     /**
1688      * @param webUILeaveFieldFunctionParameters
1689      *         the webUILeaveFieldFunctionParameters to set
1690      */
1691     public void setWebUILeaveFieldFunctionParameters(
1692             List<String> webUILeaveFieldFunctionParameters) {
1693         this.webUILeaveFieldFunctionParameters = webUILeaveFieldFunctionParameters;
1694     }
1695 
1696     public String getWebUILeaveFieldFunctionParametersString() {
1697         return KRADUtils.joinWithQuotes(getWebUILeaveFieldFunctionParameters());
1698     }
1699 
1700 
1701     //#END DOC SEARCH RELATED
1702 }