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