View Javadoc

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