| Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
| InquirySectionDefinition | 
 | 
 | 1.4285714285714286;1.429 | 
| 1 |  /* | |
| 2 |   * Copyright 2006-2007 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 | ||
| 17 |  package org.kuali.rice.kns.datadictionary; | |
| 18 | ||
| 19 |  import org.kuali.rice.krad.datadictionary.DataDictionaryDefinitionBase; | |
| 20 |  import org.kuali.rice.krad.datadictionary.exception.DuplicateEntryException; | |
| 21 | ||
| 22 |  import java.util.ArrayList; | |
| 23 |  import java.util.LinkedHashMap; | |
| 24 |  import java.util.List; | |
| 25 |  import java.util.Map; | |
| 26 | ||
| 27 |  /** | |
| 28 |   *                  inquirySection defines the format and content of | |
| 29 |                   one section of the inquiry. | |
| 30 |                   DD:  See InquirySectionDefinition.java | |
| 31 |                    | |
| 32 |                  numberOfColumns = the number of fields to be displayed in each row of the inquiry section. | |
| 33 |                  For example, numberOfColumns = 2 indicates that the label and values for two fields will be | |
| 34 |                  displayed in each row as follows: | |
| 35 |                      field1label field1value  |   field2label field2value | |
| 36 |                      field3label field3value  |   field4label field4value | |
| 37 |                  etc. | |
| 38 |                    | |
| 39 |   * Contains section-related information for inquiry sections | |
| 40 |   * Note: the setters do copious amounts of validation, to facilitate generating errors during the parsing process. | |
| 41 |   */ | |
| 42 | @Deprecated | |
| 43 | public class InquirySectionDefinition extends DataDictionaryDefinitionBase { | |
| 44 | private static final long serialVersionUID = 1565114894539391362L; | |
| 45 | ||
| 46 |          protected String title; | |
| 47 | 0 |      protected List<FieldDefinition> inquiryFields = new ArrayList<FieldDefinition>(); | 
| 48 | 0 |      protected Map<String, FieldDefinition> inquiryFieldMap = new LinkedHashMap<String, FieldDefinition>(); | 
| 49 |      protected Map inquiryCollections; | |
| 50 | ||
| 51 | 0 |      protected Integer numberOfColumns = 1; | 
| 52 | 0 |      protected boolean defaultOpen = true; | 
| 53 | ||
| 54 | 0 |      public InquirySectionDefinition() {} | 
| 55 | ||
| 56 | ||
| 57 |      /** | |
| 58 |       * @return title | |
| 59 |       */ | |
| 60 |      public String getTitle() { | |
| 61 | 0 |          return title; | 
| 62 | } | |
| 63 | ||
| 64 |      /** | |
| 65 |       * Sets title to the given value. | |
| 66 |       *  | |
| 67 |       * @param title | |
| 68 |       * @throws IllegalArgumentException if the given title is blank | |
| 69 |       */ | |
| 70 | public void setTitle(String title) { | |
| 71 | 0 |          this.title = title; | 
| 72 | 0 |      } | 
| 73 | ||
| 74 |      /** | |
| 75 |       * @return List of attributeNames of all FieldDefinitions associated with this InquirySection, in the order in | |
| 76 |       *         which they were added | |
| 77 |       */ | |
| 78 |      public List<String> getInquiryFieldNames() { | |
| 79 | 0 |          List<String> itemNames = new ArrayList<String>(); | 
| 80 | 0 |          itemNames.addAll(this.inquiryFieldMap.keySet()); | 
| 81 | ||
| 82 | 0 |          return itemNames; | 
| 83 | } | |
| 84 | ||
| 85 |      /** | |
| 86 |       * @return Collection of all FieldDefinitions associated with this InquirySection, in the order in which they | |
| 87 |       *         were added | |
| 88 |       */ | |
| 89 |      public List<FieldDefinition> getInquiryFields() { | |
| 90 | 0 |          return inquiryFields; | 
| 91 | } | |
| 92 | ||
| 93 |      /** | |
| 94 |       * Directly validate simple fields, call completeValidation on Definition fields. | |
| 95 |       *  | |
| 96 |       * @see org.kuali.rice.krad.datadictionary.DataDictionaryDefinition#completeValidation(java.lang.Class, java.lang.Object) | |
| 97 |       */ | |
| 98 | public void completeValidation(Class rootBusinessObjectClass, Class otherBusinessObjectClass) { | |
| 99 | 0 |          for (FieldDefinition inquiryField : inquiryFields ) { | 
| 100 | 0 |              inquiryField.completeValidation(rootBusinessObjectClass, null); | 
| 101 | } | |
| 102 | 0 |      } | 
| 103 | ||
| 104 |      public String toString() { | |
| 105 | 0 |          return "InquirySectionDefinition '" + getTitle() + "'"; | 
| 106 | } | |
| 107 | ||
| 108 |      public Map getInquiryCollections() { | |
| 109 | 0 |          return inquiryCollections; | 
| 110 | } | |
| 111 | ||
| 112 |      /** | |
| 113 |                     The inquiryCollection defines a collection within the Business Object which contains | |
| 114 |                     data that should be displayed with the BO when the inquiry is performed. | |
| 115 | ||
| 116 |                     Each inquiryCollection defines a set of data fields, nested inquiryCollections | |
| 117 |                     and summaryFields.  The summaryFields will be reported in the header of | |
| 118 |                     this inquiryCollection, . | |
| 119 | ||
| 120 |                     DD: See InquiryCollectionDefinition.java | |
| 121 |                     JSTL: The inquiryCollection element is a Map with the following keys: | |
| 122 |                         * name (String) | |
| 123 |                         * dataObjectClass (String) | |
| 124 |                         * numberOfColumns (String) | |
| 125 |                         * inquiryFields (Map) | |
| 126 |                         * inquiryCollections (Map, optional) | |
| 127 |                         * summaryTitle (String) | |
| 128 |                         * summaryFields (Map, optional) | |
| 129 |       */ | |
| 130 | public void setInquiryCollections(Map inquiryCollections) { | |
| 131 | 0 |          this.inquiryCollections = inquiryCollections; | 
| 132 | 0 |      } | 
| 133 | ||
| 134 |      public Integer getNumberOfColumns() { | |
| 135 | 0 |          return numberOfColumns; | 
| 136 | } | |
| 137 | ||
| 138 |      /** | |
| 139 |                  numberOfColumns = the number of fields to be displayed in each row of the inquiry section. | |
| 140 |                  For example, numberOfColumns = 2 indicates that the label and values for two fields will be | |
| 141 |                  displayed in each row as follows: | |
| 142 |                      field1label field1value  |   field2label field2value | |
| 143 |                      field3label field3value  |   field4label field4value | |
| 144 |                  etc. | |
| 145 |       */ | |
| 146 | public void setNumberOfColumns(Integer numberOfColumns) { | |
| 147 | 0 |          this.numberOfColumns = numberOfColumns; | 
| 148 | 0 |      } | 
| 149 | ||
| 150 | ||
| 151 |      /** | |
| 152 |                  JSTL: inquiryFields is a Map which is accessed using a | |
| 153 |                  key of "inquiryFields".  This map contains the following types | |
| 154 |                  of elements: | |
| 155 |                      * inquirySubSectionHeader | |
| 156 |                      * field | |
| 157 |                      * inquiryCollection | |
| 158 |                  Each of these entries are keyed by "attributeName". | |
| 159 |                  The associated value is the attributeName of the | |
| 160 |                  mapped element. | |
| 161 | ||
| 162 |                    The inquirySubSectionHeader allows a separator containing text to | |
| 163 |                    separate groups of fields.  The name attribute is the displayed text. | |
| 164 | ||
| 165 |                    JSTL: inquirySubSectionHeader appears in the inquiryFields map as: | |
| 166 |                        * key = "attributeName" | |
| 167 |                        * value = name of inquirySubSectionHeader | |
| 168 | ||
| 169 | ||
| 170 |                      The field element defines the attributes of a single data field. | |
| 171 | ||
| 172 |                      DD:  See FieldDefinition.java | |
| 173 |                      JSTL: The field element is a Map which is accessed using | |
| 174 |                      a key of the attributeName.  This map contains the following keys: | |
| 175 |                          * attributeName (String) | |
| 176 |                          * forceInquiry (boolean String) | |
| 177 |                          * noInquiry (boolean String) | |
| 178 |                          * maxLength (String) | |
| 179 | ||
| 180 |                  forceInquiry = true means that the displayed field value will | |
| 181 |                  always be made inquirable (this attribute is not used within the code). | |
| 182 | ||
| 183 |                  noInquiry = true means that the displayed field will never be made inquirable. | |
| 184 | ||
| 185 |                  maxLength = the maximum allowable length of the field in the lookup result fields.  In other contexts, | |
| 186 |                  like inquiries, this field has no effect. | |
| 187 |       */ | |
| 188 | public void setInquiryFields(List<FieldDefinition> inquiryFields) { | |
| 189 | 0 |          inquiryFieldMap.clear(); | 
| 190 | 0 |          for (FieldDefinition inquiryField : inquiryFields ) { | 
| 191 | 0 |              if (inquiryField == null) { | 
| 192 | 0 |                  throw new IllegalArgumentException("invalid (null) inquiryField"); | 
| 193 | } | |
| 194 | ||
| 195 | 0 |              String itemName = inquiryField.getAttributeName(); | 
| 196 | 0 |              if (inquiryFieldMap.containsKey(itemName)) { | 
| 197 | 0 |                  throw new DuplicateEntryException("duplicate itemName entry for item '" + itemName + "'"); | 
| 198 | } | |
| 199 | ||
| 200 | 0 |              inquiryFieldMap.put(itemName, inquiryField);         | 
| 201 | 0 |          } | 
| 202 | 0 |          this.inquiryFields = inquiryFields; | 
| 203 | 0 |      } | 
| 204 | ||
| 205 | ||
| 206 |          /** | |
| 207 |           * @return the defaultOpen | |
| 208 |           */ | |
| 209 | public boolean isDefaultOpen() { | |
| 210 | 0 |                  return this.defaultOpen; | 
| 211 | } | |
| 212 | ||
| 213 | ||
| 214 |          /** | |
| 215 |           * @param defaultOpen the defaultOpen to set | |
| 216 |           */ | |
| 217 | public void setDefaultOpen(boolean defaultOpen) { | |
| 218 | 0 |                  this.defaultOpen = defaultOpen; | 
| 219 | 0 |          } | 
| 220 | ||
| 221 | } |