Coverage Report - org.kuali.rice.kns.datadictionary.InquirySectionDefinition
 
Classes in this File Line Coverage Branch Coverage Complexity
InquirySectionDefinition
0%
0/36
0%
0/8
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  
 }