View Javadoc

1   package org.kuali.rice.core.api.uif;
2   
3   /**
4    * Defines configuration for an attribute which may be used as part of a lookups.  This includes indicating if the
5    * field is displayed in the lookup criteria or lookup result set, as well as defining information about this field
6    * if it used as part of a range-based lookup.
7    *
8    * <p>The range bounds allows the party executing the lookup against this attribute to enter a value for both ends
9    * (lower and upper bounds) in order to determine if the attribute is "between" those two values.</p>
10   *
11   * <p>Note that an attribute range only makes sense if the {@code DataType} of the attribute is
12   * a date or numerical data type.  The consumer of these settings is free to ignore the given
13   * attribute range information if it does not believe it is possible to successfully present a range-based
14   * lookup option based on the data type (or other settings) of the {@code AttributeField}.</p>
15   *
16   * @author Kuali Rice Team (rice.collab@kuali.org)
17   */
18  public interface AttributeLookupSettings {
19  
20      /**
21       * Returns true if this field should be included as part of the lookup criteria, false if not.
22       *
23       * @return true if this field should be included as part of the lookup criteria, false if not
24       */
25      boolean isInCriteria();
26  
27      /**
28       * Returns true if this field should be included in the result set of the lookup, false if not.
29       *
30       * @return true if this field should be included in the result set of the lookup, false if not
31       */
32      boolean isInResults();
33  
34      /**
35       * Returns true if lookups against this field should be handled as a lookup operation supporting a range-based
36       * search of data against the field.
37       *
38       * @return true if lookups against this attribute should allow for ranged lookup fields, false otherwise
39       */
40      boolean isRanged();
41  
42      /**
43       * Returns the name to assign to the lower bound of the range.  It is important to ensure that this
44       * does not conflict with any other attribute names being used on the lookup.
45       *
46       * @return the name of the lower bound of the range
47       */
48      String getLowerBoundName();
49  
50      /**
51       * Returns the label to use for the lower bound of the range.  If no label is defined, then the
52       * framework will generate one.
53       *
54       * @return the label of the lower bound of the range
55       */
56      String getLowerBoundLabel();
57  
58  
59      /**
60       * Returns true if the lower bound should be treated as inclusive when executing a ranged
61       * lookup against the attribute, false if it should be treated as exclusive.
62       *
63       * @return true if the lower bound is inclusive, false if it is exclusive
64       */
65      boolean isLowerBoundInclusive();
66  
67      /**
68       * Returns the name to assign to the upper bound of the range.  It is important to ensure that this
69       * does not conflict with any other attribute names being used on the lookup.
70       *
71       * @return the name of the upper bound of the range
72       */
73      String getUpperBoundName();
74  
75      /**
76       * Returns the label to use for the upper bound of the range.  If no label is defined, then the
77       * framework will generate one.
78       *
79       * @return the label of the upper bound of the range
80       */
81      String getUpperBoundLabel();
82  
83      /**
84       * Returns true if the upper bound should be treated as inclusive when executing a ranged
85       * lookup against the attribute, false if it should be treated as exclusive.
86       *
87       * @return true if the upper bound is inclusive, false if it is exclusive
88       */
89      boolean isUpperBoundInclusive();
90  
91  }