Coverage Report - org.kuali.rice.kns.service.BusinessObjectDictionaryService
 
Classes in this File Line Coverage Branch Coverage Complexity
BusinessObjectDictionaryService
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 2005-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  
 package org.kuali.rice.kns.service;
 17  
 
 18  
 import java.util.List;
 19  
 
 20  
 import org.kuali.rice.kns.bo.BusinessObject;
 21  
 import org.kuali.rice.kns.datadictionary.FieldDefinition;
 22  
 import org.kuali.rice.kns.inquiry.InquiryAuthorizer;
 23  
 import org.kuali.rice.kns.inquiry.InquiryPresentationController;
 24  
 import org.kuali.rice.kns.lookup.valuefinder.ValueFinder;
 25  
 
 26  
 
 27  
 /**
 28  
  * This interface defines the API for the interacting with the data dictionary.
 29  
  */
 30  
 public interface BusinessObjectDictionaryService {
 31  
         public <T extends BusinessObject> InquiryPresentationController getInquiryPresentationController(Class<T> businessObjectClass);
 32  
         
 33  
         public <T extends BusinessObject> InquiryAuthorizer getInquiryAuthorizer(Class<T> businessObjectClass);
 34  
 
 35  
     /**
 36  
      * the list of business object class names being maintained
 37  
      */
 38  
     public List getBusinessObjectClassnames();
 39  
 
 40  
 
 41  
     /**
 42  
      * indicates whether business object has lookup defined
 43  
      */
 44  
     public Boolean isLookupable(Class businessObjectClass);
 45  
 
 46  
 
 47  
     /**
 48  
      * indicates whether business object has inquiry defined
 49  
      */
 50  
     public Boolean isInquirable(Class businessObjectClass);
 51  
 
 52  
 
 53  
     /**
 54  
      * indicates whether business object has maintainable defined
 55  
      */
 56  
     public Boolean isMaintainable(Class businessObjectClass);
 57  
 
 58  
 
 59  
     /**
 60  
      * indicates whether business object has an exporter defined
 61  
      */
 62  
     public Boolean isExportable(Class businessObjectClass);
 63  
     
 64  
     /**
 65  
      * the list defined as lookup fields for the business object.
 66  
      */
 67  
     public List getLookupFieldNames(Class businessObjectClass);
 68  
 
 69  
 
 70  
     /**
 71  
      * the text to be displayed for the title of business object lookup.
 72  
      */
 73  
     public String getLookupTitle(Class businessObjectClass);
 74  
 
 75  
 
 76  
     /**
 77  
      * menu bar html defined for the business object.
 78  
      */
 79  
     public String getLookupMenuBar(Class businessObjectClass);
 80  
     
 81  
 
 82  
     /**
 83  
      * source for optional extra button
 84  
      */
 85  
     public String getExtraButtonSource(Class businessObjectClass);
 86  
 
 87  
 
 88  
     /**
 89  
      * return parameters for optional extra button
 90  
      */
 91  
     public String getExtraButtonParams(Class businessObjectClass);
 92  
 
 93  
 
 94  
     /**
 95  
      * the property names of the bo used to sort the initial result set
 96  
      */
 97  
     public List getLookupDefaultSortFieldNames(Class businessObjectClass);
 98  
 
 99  
 
 100  
     /**
 101  
      * the list defined as lookup result fields for the business object.
 102  
      */
 103  
     public List<String> getLookupResultFieldNames(Class businessObjectClass);
 104  
 
 105  
     /**
 106  
      * This method returns the maximum display length of the value of the given field in the lookup results.  While the actual value may
 107  
      * be longer than the specified length, this value specifies the maximum length substring that should be displayed.
 108  
      * It is up to the UI layer to intepret the results of the field
 109  
      *
 110  
      * @param businessObjectClass
 111  
      * @param resultFieldName
 112  
      * @return the maximum length of the lookup results field that should be displayed.  Returns null
 113  
      * if this value has not been defined.  If negative, denotes that the is maximum length is unlimited.
 114  
      */
 115  
     public Integer getLookupResultFieldMaxLength(Class businessObjectClass, String resultFieldName);
 116  
 
 117  
     /**
 118  
      * returns boolean indicating whether lookup result field marked to force an inquiry
 119  
      */
 120  
     public Boolean forceLookupResultFieldInquiry(Class businessObjectClass, String attributeName);
 121  
 
 122  
 
 123  
     /**
 124  
      * returns boolean indicating whether lookup result field marked to not do an inquiry
 125  
      */
 126  
     public Boolean noLookupResultFieldInquiry(Class businessObjectClass, String attributeName);
 127  
 
 128  
 
 129  
     /**
 130  
      * returns boolean indicating whether lookup search field marked to force a lookup
 131  
      */
 132  
     public Boolean forceLookupFieldLookup(Class businessObjectClass, String attributeName);
 133  
 
 134  
     /**
 135  
      * returns boolean indicating whether lookup search field marked to force an inquiry
 136  
      */
 137  
     public Boolean forceInquiryFieldLookup(Class businessObjectClass, String attributeName);
 138  
     
 139  
     /**
 140  
      * returns boolean indicating whether lookup search field marked to not do a lookup
 141  
      */
 142  
     public Boolean noLookupFieldLookup(Class businessObjectClass, String attributeName);
 143  
 
 144  
 
 145  
     /**
 146  
      * returns boolean indicating whether lookup search field marked to not do a direct inquiry
 147  
      */
 148  
     public Boolean noDirectInquiryFieldLookup(Class businessObjectClass, String attributeName);
 149  
 
 150  
 
 151  
     /**
 152  
      * returns boolean indicating whether inquiry result field marked to force an inquiry
 153  
      */
 154  
     public Boolean forceInquiryFieldInquiry(Class businessObjectClass, String attributeName);
 155  
 
 156  
 
 157  
     /**
 158  
      * returns boolean indicating whether inquiry result field marked to not do an inquiry
 159  
      */
 160  
     public Boolean noInquiryFieldInquiry(Class businessObjectClass, String attributeName);
 161  
 
 162  
     /**
 163  
      * returns boolean indicating whether lookup result field to use shortLabel
 164  
      */
 165  
     public Boolean getLookupResultFieldUseShortLabel(Class businessObjectClass, String attributeName);
 166  
     
 167  
     /**
 168  
      * returns boolean indicating whether lookup result field should be totaled
 169  
      */
 170  
     public Boolean getLookupResultFieldTotal(Class businessObjectClass, String attributeName);
 171  
 
 172  
     /**
 173  
      * returns String indicating the default search value for the lookup field
 174  
      */
 175  
     public String getLookupFieldDefaultValue(Class businessObjectClass, String attributeName);
 176  
 
 177  
 
 178  
     /**
 179  
      * returns Class used to generate a lookup field default value
 180  
      */
 181  
     public Class getLookupFieldDefaultValueFinderClass(Class businessObjectClass, String attributeName);
 182  
 
 183  
     /**
 184  
      * See {@link FieldDefinition#getQuickfinderParameterString()}.
 185  
      * returns String indicating the default search value for the lookup field.
 186  
      */
 187  
     public String getLookupFieldQuickfinderParameterString(Class businessObjectClass, String attributeName);
 188  
 
 189  
 
 190  
     /**
 191  
      * returns Class used to generate quickfinder lookup field default values.
 192  
      * See {@link FieldDefinition#getQuickfinderParameterStringBuilderClass()}.
 193  
      */
 194  
     public Class<? extends ValueFinder> getLookupFieldQuickfinderParameterStringBuilderClass(Class businessObjectClass, String attributeName);
 195  
 
 196  
 
 197  
     /**
 198  
      * returns String indicating the result set limit for the lookup
 199  
      */
 200  
     public Integer getLookupResultSetLimit(Class businessObjectClass);
 201  
     
 202  
     /**
 203  
      * @return number of search columns configured for the lookup associated with the class
 204  
      */
 205  
     public Integer getLookupNumberOfColumns(Class businessObjectClass);
 206  
 
 207  
     /**
 208  
      * returns String indicating the location of the lookup icon.
 209  
      */
 210  
     public String getSearchIconOverride(Class businessObjectClass);
 211  
 
 212  
     /**
 213  
      * indicates whether a field is required for a lookup
 214  
      */
 215  
     public Boolean getLookupAttributeRequired(Class businessObjectClass, String attributeName);
 216  
     
 217  
     /**
 218  
      * indicates whether a field is read only for a lookup
 219  
      */
 220  
     public Boolean getLookupAttributeReadOnly(Class businessObjectClass, String attributeName);
 221  
 
 222  
 
 223  
     /**
 224  
      * the list defined as inquiry fields for the business object and inquiry section.
 225  
      */
 226  
     public List getInquiryFieldNames(Class businessObjectClass, String sectionTitle);
 227  
 
 228  
 
 229  
     /**
 230  
      * the list defined as inquiry sections for the business object.
 231  
      */
 232  
     public List getInquirySections(Class businessObjectClass);
 233  
 
 234  
 
 235  
     /**
 236  
      * the text to be displayed for the title of business object inquiry.
 237  
      */
 238  
     public String getInquiryTitle(Class businessObjectClass);
 239  
 
 240  
 
 241  
     /**
 242  
      * the class to be used for building inquiry pages.
 243  
      */
 244  
     public Class getInquirableClass(Class businessObjectClass);
 245  
 
 246  
     /**
 247  
      * the text to be displayed for the title of business object maintenance document.
 248  
      */
 249  
     public String getMaintainableLabel(Class businessObjectClass);
 250  
 
 251  
 
 252  
     /**
 253  
      * the attribute to be associated with for object level markings
 254  
      */
 255  
     public String getTitleAttribute(Class businessObjectClass);
 256  
 
 257  
 
 258  
     /**
 259  
      * the Lookupable implementation id for the associated Lookup, if one has been specified
 260  
      */
 261  
     public String getLookupableID(Class businessObjectClass);
 262  
 
 263  
 
 264  
     /**
 265  
      * This method takes any business object and recursively walks through it checking to see if any attributes need to be forced to
 266  
      * uppercase based on settings in the data dictionary
 267  
      *
 268  
      * @param bo
 269  
      */
 270  
     public void performForceUppercase(BusinessObject bo);
 271  
 
 272  
 
 273  
     public Boolean areNotesSupported(Class businessObjectClass);
 274  
 
 275  
     /**
 276  
      * returns whether on a lookup, field/attribute values with wildcards and operators should treat them as literal characters
 277  
      * 
 278  
      * @param businessObjectClass
 279  
      * @param attributeName
 280  
      * @return
 281  
      */
 282  
     public boolean isLookupFieldTreatWildcardsAndOperatorsAsLiteral(Class businessObjectClass, String attributeName);
 283  
     
 284  
     /**
 285  
      * returns String giving alternate display attribute name for lookup field if configured, or null
 286  
      */
 287  
     public String getLookupFieldAlternateDisplayAttributeName(Class businessObjectClass, String attributeName);
 288  
 
 289  
     /**
 290  
      * returns String giving alternate display attribute name for inquiry field if configured, or null
 291  
      */
 292  
     public String getInquiryFieldAlternateDisplayAttributeName(Class businessObjectClass, String attributeName);
 293  
     
 294  
     /**
 295  
      * returns String giving additional display attribute name for lookup field if configured, or null
 296  
      */
 297  
      
 298  
     public String getLookupFieldAdditionalDisplayAttributeName(Class businessObjectClass, String attributeName);
 299  
 
 300  
     /**
 301  
      * returns String giving additional display attribute name for inquiry field if configured, or null
 302  
      */
 303  
     public String getInquiryFieldAdditionalDisplayAttributeName(Class businessObjectClass, String attributeName);
 304  
     
 305  
      /**
 306  
      * @param businessObjectClass - business object class for lookup definition
 307  
      * @return Boolean indicating whether translating of codes is configured to true in lookup definition  
 308  
      */
 309  
     public Boolean tranlateCodesInLookup(Class businessObjectClass);
 310  
 
 311  
     /**
 312  
      * @param businessObjectClass - business object class for inquiry definition
 313  
      * @return Boolean indicating whether translating of codes is configured to true in inquiry definition  
 314  
      */
 315  
     public Boolean tranlateCodesInInquiry(Class businessObjectClass);
 316  
     
 317  
     /**
 318  
      * Indicates whether a lookup field has been configured to trigger on value change
 319  
      * 
 320  
      * @param businessObjectClass - Class for business object to lookup 
 321  
      * @param attributeName - name of attribute in the business object to check configuration for
 322  
      * @return true if field is configured to trigger on value change, false if not
 323  
      */
 324  
     public boolean isLookupFieldTriggerOnChange(Class businessObjectClass, String attributeName);
 325  
     
 326  
         /**
 327  
          * Indicates whether the search and clear buttons should be disabled based on the data
 328  
          * dictionary configuration
 329  
          * 
 330  
          * @param businessObjectClass
 331  
          *            - business object class for lookup definition
 332  
          * @return Boolean indicating whether disable search buttons is configured to true in lookup
 333  
          *         definition
 334  
          */
 335  
         public boolean disableSearchButtonsInLookup(Class businessObjectClass);
 336  
         
 337  
         /**
 338  
          * Returns the list of attributes that should be used for grouping when determing the current
 339  
          * status of a business object that implements InactivateableFromTo
 340  
          * 
 341  
          * @param businessObjectClass - business object class to get configured list for
 342  
          * @return List of string attribute names that gives the group by list
 343  
          */
 344  
         public List<String> getGroupByAttributesForEffectiveDating(Class businessObjectClass);
 345  
 }