Coverage Report - org.kuali.rice.kns.datadictionary.MaintainableSectionDefinition
 
Classes in this File Line Coverage Branch Coverage Complexity
MaintainableSectionDefinition
0%
0/35
0%
0/16
1.929
 
 1  
 /**
 2  
  * Copyright 2005-2011 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.datadictionary;
 17  
 
 18  
 import org.apache.commons.lang.StringUtils;
 19  
 import org.kuali.rice.krad.datadictionary.DataDictionaryDefinitionBase;
 20  
 import org.kuali.rice.krad.datadictionary.DataDictionaryException;
 21  
 
 22  
 import java.util.ArrayList;
 23  
 import java.util.List;
 24  
 
 25  
 /**
 26  
     The maintainableSection element defines one section of the
 27  
     maintenance document.
 28  
 
 29  
     JSTL: maintainableSection is a Map which is accessed by an
 30  
     integer representing the sequential occurrence of the section.
 31  
     e.g. "0", "1", etc.  This map contains entries with the following
 32  
     keys:
 33  
         * index (String) - e.g. "0" for first section, etc.
 34  
         * title (String)
 35  
         * maintainableItems (Map)
 36  
  */
 37  
 @Deprecated
 38  
 public class MaintainableSectionDefinition extends DataDictionaryDefinitionBase {
 39  
     private static final long serialVersionUID = -8615694293159113523L;
 40  
 
 41  
         protected String title;
 42  
 
 43  0
     protected List<MaintainableItemDefinition> maintainableItems = new ArrayList<MaintainableItemDefinition>();
 44  
     
 45  0
     protected boolean hidden = false;
 46  
     
 47  0
     protected boolean defaultOpen = true;
 48  
     
 49  
     protected String helpUrl;
 50  
     
 51  0
     public MaintainableSectionDefinition() {}
 52  
 
 53  
     /**
 54  
      * @return title
 55  
      */
 56  
     public String getTitle() {
 57  0
         return title;
 58  
     }
 59  
 
 60  
     /**
 61  
      * Default the ID to the title for now.
 62  
      * 
 63  
      * @see org.kuali.rice.krad.datadictionary.DataDictionaryDefinitionBase#getId()
 64  
      */
 65  
     @Override
 66  
     public String getId() {
 67  0
         if (StringUtils.isBlank(id)) {
 68  0
                 return title;
 69  
         }
 70  0
         return id;
 71  
     }
 72  
 
 73  
 
 74  
     /**
 75  
      * Sets title of the Section.
 76  
      * 
 77  
      * @throws IllegalArgumentException if the given title is blank
 78  
      */
 79  
     public void setTitle(String title) {
 80  0
         if (StringUtils.isBlank(title)) {
 81  0
             throw new IllegalArgumentException("invalid (blank) title");
 82  
         }
 83  
 
 84  0
         this.title = title;
 85  0
     }
 86  
 
 87  
     /**
 88  
      * @return Collection of all MaintainableFieldDefinitions associated with this MaintainableSection, in the order in which they
 89  
      *         were added
 90  
      */
 91  
     public List<MaintainableItemDefinition> getMaintainableItems() {
 92  0
         return maintainableItems;
 93  
     }
 94  
 
 95  
 
 96  
     /**
 97  
      * Directly validate simple fields, call completeValidation on Definition fields.
 98  
      * 
 99  
      * @see org.kuali.rice.krad.datadictionary.DataDictionaryDefinition#completeValidation(java.lang.Class, java.lang.Object)
 100  
      */
 101  
     public void completeValidation(Class rootBusinessObjectClass, Class otherBusinessObjectClass) {
 102  0
             if (StringUtils.contains(title, ",") && StringUtils.isBlank(id)) {
 103  0
                     throw new DataDictionaryException("The title for maintainable section \"" + title + "\" for class " + rootBusinessObjectClass.getName() +
 104  
                                     " contains a comma.  In this case, the id property must be defined and it may not contain a comma");
 105  
             }
 106  0
             if (StringUtils.contains(id, ",")) {
 107  0
                     throw new DataDictionaryException("The id for maintainable section \"" + id + "\" for class " + rootBusinessObjectClass.getName() +
 108  
                                     " contains a comma, which is not allowed.");
 109  
             }
 110  0
         for ( MaintainableItemDefinition maintainableItem : maintainableItems ) {
 111  0
             maintainableItem.completeValidation(rootBusinessObjectClass, null);
 112  
         }
 113  0
     }
 114  
 
 115  
     public String toString() {
 116  0
         return "MaintainableSectionDefinition '" + getTitle() + "'";
 117  
     }
 118  
 
 119  
 
 120  
     public boolean isHidden() {
 121  0
         return this.hidden;
 122  
     }
 123  
 
 124  
 
 125  
     /** Whether to hide the entire section, tab and all. */
 126  
     public void setHidden(boolean hidden) {
 127  0
         this.hidden = hidden;
 128  0
     }
 129  
 
 130  
 
 131  
     /**
 132  
         The maintainableItems element defines the components of a
 133  
         section.  These may include fields, sub-section headers,
 134  
         and fields.
 135  
 
 136  
         JSTL: maintainableItems is a Map which is accessed by a
 137  
         key of "maintainableItems".  This map contains entries with
 138  
         the following keys:
 139  
             * name of first item in the section
 140  
             * name of second item in the section
 141  
             * etc.
 142  
         The corresponding value is an ExportMap which is dependent
 143  
         upon the type of the item as follows:
 144  
 
 145  
         subSectionHeader ExportMap
 146  
             In this case, the ExportMap contains the following
 147  
             keys and values:
 148  
                 **Key**     **Value**
 149  
                 name        name of subSectionHeader
 150  
 
 151  
         maintainableField ExportMap
 152  
             In this case, the ExportMap contains the following
 153  
             keys and values:
 154  
                 **Key**     **Value**
 155  
                 field       true
 156  
                 name        name of maintainableField
 157  
                 required    true or false
 158  
 
 159  
         maintainableCollection ExportMap
 160  
             In this case, the ExportMap contains the following
 161  
             keys and values:
 162  
                 **Key**                **Value**
 163  
                 collection             true
 164  
                 name                   name of collection
 165  
                 dataObjectClass    name of collection class
 166  
      */
 167  
     public void setMaintainableItems(List<MaintainableItemDefinition> maintainableItems) {
 168  0
         for ( MaintainableItemDefinition maintainableItem : maintainableItems ) {
 169  0
             if (maintainableItem == null) {
 170  0
                 throw new IllegalArgumentException("invalid (null) maintainableItem");
 171  
             }
 172  
         }
 173  
         
 174  0
         this.maintainableItems = maintainableItems;
 175  0
     }
 176  
 
 177  
         /**
 178  
          * @return the defaultOpen
 179  
          */
 180  
         public boolean isDefaultOpen() {
 181  0
                 return this.defaultOpen;
 182  
         }
 183  
 
 184  
         /**
 185  
          * @param defaultOpen the defaultOpen to set
 186  
          */
 187  
         public void setDefaultOpen(boolean defaultOpen) {
 188  0
                 this.defaultOpen = defaultOpen;
 189  0
         }
 190  
 
 191  
         public String getHelpUrl() {
 192  0
                 return helpUrl;
 193  
         }
 194  
 
 195  
         public void setHelpUrl(String helpUrl) {
 196  0
                 this.helpUrl = helpUrl;
 197  0
         }
 198  
         
 199  
 }