Coverage Report - org.kuali.rice.kns.service.ModuleService
 
Classes in this File Line Coverage Branch Coverage Complexity
ModuleService
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 2007-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  
 package org.kuali.rice.kns.service;
 17  
 
 18  
 import java.util.List;
 19  
 import java.util.Map;
 20  
 
 21  
 import org.kuali.rice.kns.bo.BusinessObject;
 22  
 import org.kuali.rice.kns.bo.ExternalizableBusinessObject;
 23  
 import org.kuali.rice.kns.bo.ModuleConfiguration;
 24  
 import org.kuali.rice.kns.datadictionary.BusinessObjectEntry;
 25  
 import org.springframework.beans.factory.InitializingBean;
 26  
 import org.springframework.context.ApplicationContextAware;
 27  
 
 28  
 /**
 29  
  * This interface defines service methods for modules.
 30  
  *
 31  
  * @author Kuali Rice Team (rice.collab@kuali.org)
 32  
  *
 33  
  */
 34  
 public interface ModuleService extends InitializingBean, ApplicationContextAware {
 35  
 
 36  
         /**
 37  
          *
 38  
          * This method returns the module configuration.
 39  
          *
 40  
          * @return
 41  
          */
 42  
         public ModuleConfiguration getModuleConfiguration();
 43  
 
 44  
         /**
 45  
          *
 46  
          * This method determines whether this service is responsible for the business object class passed in, or not.
 47  
          *
 48  
          * @param businessObjectClass
 49  
          * @return
 50  
          */
 51  
         public boolean isResponsibleFor(Class businessObjectClass);
 52  
 
 53  
         /**
 54  
          *
 55  
          * This method determines whether this service is responsible for the given jobname, or not.
 56  
          *
 57  
          * @param businessObjectClass
 58  
          * @return
 59  
          */
 60  
         public boolean isResponsibleForJob(String jobName);
 61  
 
 62  
         /**
 63  
          *
 64  
          * This method returns the list of primary keys for the EBO.
 65  
          *
 66  
          * @param businessObjectInterfaceClass
 67  
          * @return
 68  
          */
 69  
         public List listPrimaryKeyFieldNames(Class businessObjectInterfaceClass);
 70  
 
 71  
         /**
 72  
          *
 73  
          * This method returns a list of alternate primary keys.  This is used when the "real" primary
 74  
          * key is not the only one that can be used.  For example, documentType has "documentTypeId"
 75  
          * as its primary key, but the "name" could also be used.
 76  
          * A List of Lists is returned because because there can be component keys:
 77  
          * Ex:
 78  
          * {name, date}
 79  
          * {department, personId}
 80  
          *
 81  
          * @param businessObjectInterfaceClass
 82  
          * @return List of List of Strings.
 83  
          */
 84  
         public List<List<String>> listAlternatePrimaryKeyFieldNames(Class businessObjectInterfaceClass);
 85  
 
 86  
         /**
 87  
          *
 88  
          * This method gets the business object dictionary entry for the passed in externalizable business object class.
 89  
          *
 90  
          * @param businessObjectInterfaceClass
 91  
          * @return
 92  
          */
 93  
         public BusinessObjectEntry getExternalizableBusinessObjectDictionaryEntry(Class businessObjectInterfaceClass);
 94  
 
 95  
         /**
 96  
          *
 97  
          * This method gets the externalizable business object, given its type and a map of primary keys and values
 98  
          *
 99  
          * @param businessObjectInterfaceClass
 100  
          * @param fieldValues
 101  
          * @return
 102  
          */
 103  
         public <T extends ExternalizableBusinessObject> T getExternalizableBusinessObject(Class<T> businessObjectClass, Map<String, Object> fieldValues);
 104  
 
 105  
         /**
 106  
          *
 107  
          * This method gets the list of externalizable business objects, given its type and a map of primary keys and values.
 108  
          *
 109  
          * @param businessObjectInterfaceClass
 110  
          * @param fieldValues
 111  
          * @return
 112  
          */
 113  
         public <T extends ExternalizableBusinessObject> List<T> getExternalizableBusinessObjectsList(
 114  
                         Class<T> businessObjectClass, Map<String, Object> fieldValues);
 115  
 
 116  
         /**
 117  
          *
 118  
          * This method gets the list of externalizable business objects for lookup, given its type and a map of primary keys and values.
 119  
          *
 120  
          * @param <T>
 121  
          * @param businessObjectClass
 122  
          * @param fieldValues
 123  
          * @param unbounded
 124  
          * @return
 125  
          */
 126  
         public <T extends ExternalizableBusinessObject> List<T> getExternalizableBusinessObjectsListForLookup(
 127  
                         Class<T> businessObjectClass, Map<String, Object> fieldValues, boolean unbounded);
 128  
 
 129  
         /**
 130  
          * This method returns a URL so that the inquiry framework may redirect a user to the appropriate (possibly external) website
 131  
          * at which to view inquiry information.
 132  
          *
 133  
          * @param inquiryBusinessObjectClass a {@link ExternalizableBusinessObject} managed by this module
 134  
          * @param parameters any inquiry parameters, and the primary key values of the inquiryBusinessObjectClass would be in here
 135  
          * @return a URL where externalizable business object information may be viewed.
 136  
          */
 137  
         public String getExternalizableBusinessObjectInquiryUrl(Class inquiryBusinessObjectClass, Map<String, String[]> parameters);
 138  
 
 139  
         /**
 140  
          *
 141  
          * This method gets the lookup url for the given externalizable business object properties.
 142  
          *
 143  
          * @param parameters
 144  
          * @return
 145  
          */
 146  
         public String getExternalizableBusinessObjectLookupUrl(Class inquiryBusinessObjectClass, Map<String, String> parameters);
 147  
 
 148  
         /**
 149  
          *
 150  
          * This method retrieves the externalizable business object, if it is not already populated
 151  
          * with the matching primary key values.
 152  
          *
 153  
          * @param businessObject
 154  
          * @param currentInstanceExternalizableBO
 155  
          * @param externalizableRelationshipName
 156  
          * @return
 157  
          */
 158  
         public <T extends ExternalizableBusinessObject> T retrieveExternalizableBusinessObjectIfNecessary(
 159  
                         BusinessObject businessObject, T currentInstanceExternalizableBO, String externalizableRelationshipName);
 160  
 
 161  
         /**
 162  
          *
 163  
          * This method retrieves a list of externalizable business objects given a business object,
 164  
          * name of the relationship between the business object and the externalizable business object, and
 165  
          * the externalizable business object class.
 166  
          *
 167  
          * @param businessObject
 168  
          * @param externalizableRelationshipName
 169  
          * @param externalizableClazz
 170  
          * @return
 171  
          */
 172  
         public <T extends ExternalizableBusinessObject> List<T> retrieveExternalizableBusinessObjectsList(
 173  
                         BusinessObject businessObject, String externalizableRelationshipName, Class<T> externalizableClazz);
 174  
 
 175  
         /**
 176  
          *
 177  
          * This method determines whether or not a bo class is externalizable.
 178  
          *
 179  
          * @param boClass
 180  
          * @return
 181  
          */
 182  
         public boolean isExternalizable(Class boClass);
 183  
 
 184  
         /**
 185  
          * @param boClass
 186  
          * @return
 187  
          */
 188  
         public boolean isExternalizableBusinessObjectLookupable(Class boClass);
 189  
 
 190  
         /**
 191  
          * @param boClass
 192  
          * @return
 193  
          */
 194  
         public boolean isExternalizableBusinessObjectInquirable(Class boClass);
 195  
 
 196  
         /**
 197  
          * @param <T>
 198  
          * @param boClass
 199  
          * @return
 200  
          */
 201  
         public <T extends ExternalizableBusinessObject> T createNewObjectFromExternalizableClass(Class<T> boClass);
 202  
 
 203  
         /**
 204  
          * For a given ExternalizableBusinessObject interface, return the implementation class provided by this module.
 205  
          */
 206  
         public <E extends ExternalizableBusinessObject> Class<E> getExternalizableBusinessObjectImplementation(Class<E> externalizableBusinessObjectInterface);
 207  
 }
 208