Coverage Report - org.kuali.rice.krad.datadictionary.DataDictionaryMapper
 
Classes in this File Line Coverage Branch Coverage Complexity
DataDictionaryMapper
N/A
N/A
1
 
 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.krad.datadictionary;
 17  
 
 18  
 import org.kuali.rice.krad.uif.UifConstants;
 19  
 import org.kuali.rice.krad.uif.view.View;
 20  
 import org.kuali.rice.krad.uif.UifConstants.ViewType;
 21  
 import org.springframework.beans.PropertyValues;
 22  
 
 23  
 import java.util.List;
 24  
 import java.util.Map;
 25  
 import java.util.Set;
 26  
 
 27  
 /**
 28  
  * Maps one Document type to other document Type.
 29  
  * 
 30  
  * This interface can be used to implement KNS to workflow document type
 31  
  * mapping relationships other than one-to-one.
 32  
  * 
 33  
  * @author mpk35
 34  
  *
 35  
  */
 36  
 public interface DataDictionaryMapper {
 37  
         /**
 38  
          * This method gets the business object entry for a concrete class
 39  
          * 
 40  
          * @param className
 41  
          * @return
 42  
          */
 43  
     @Deprecated
 44  
         public BusinessObjectEntry getBusinessObjectEntryForConcreteClass(DataDictionaryIndex index, String className);
 45  
         
 46  
         /**
 47  
      * This method gets the DataOjectEntry (or subclass) for a concrete class
 48  
      * 
 49  
      * @param className
 50  
      * @return the DataObjectEntry for the class or null if not found
 51  
      */
 52  
     public DataObjectEntry getDataObjectEntryForConcreteClass(DataDictionaryIndex index, String className);
 53  
     
 54  
     
 55  
         /**
 56  
          * @return List of businessObject classnames
 57  
          */
 58  
     @Deprecated
 59  
         public List<String> getBusinessObjectClassNames(DataDictionaryIndex index);
 60  
 
 61  
         /**
 62  
          * @param className
 63  
          * @return BusinessObjectEntry for the named class, or null if none exists
 64  
          */
 65  
         @Deprecated
 66  
         public BusinessObjectEntry getBusinessObjectEntry(DataDictionaryIndex index, String className );
 67  
 
 68  
         /**
 69  
      * @param className
 70  
      * @return DataObjectEntry for the named class, or null if none exists
 71  
      */
 72  
     public DataObjectEntry getDataObjectEntry(DataDictionaryIndex index, String className );
 73  
 
 74  
         /**
 75  
          * @return Map of (classname, BusinessObjectEntry) pairs
 76  
          */
 77  
     @Deprecated
 78  
         public Map<String, BusinessObjectEntry> getBusinessObjectEntries(DataDictionaryIndex index);
 79  
         
 80  
         /**
 81  
          * @param className
 82  
          * @return DataDictionaryEntryBase for the named class, or null if none
 83  
          *         exists
 84  
          */
 85  
         public DataDictionaryEntry getDictionaryObjectEntry(DataDictionaryIndex index, String className);
 86  
         
 87  
         /**
 88  
          * Returns the KNS document entry for the given lookup key.  The documentTypeDDKey is interpreted
 89  
          * successively in the following ways until a mapping is found (or none if found):
 90  
          * <ol>
 91  
          * <li>KEW/workflow document type</li>
 92  
          * <li>business object class name</li>
 93  
          * <li>maintainable class name</li>
 94  
          * </ol>
 95  
          * This mapping is compiled when DataDictionary files are parsed on startup (or demand).  Currently this
 96  
          * means the mapping is static, and one-to-one (one KNS document maps directly to one and only
 97  
          * one key).
 98  
          * 
 99  
          * @param documentTypeDDKey the KEW/workflow document type name
 100  
          * @return the KNS DocumentEntry if it exists
 101  
          */
 102  
         public DocumentEntry getDocumentEntry(DataDictionaryIndex index, String documentTypeDDKey);
 103  
 
 104  
         /**
 105  
          * Note: only MaintenanceDocuments are indexed by businessObject Class
 106  
          * 
 107  
          * This is a special case that is referenced in one location. Do we need
 108  
          * another map for this stuff??
 109  
          * 
 110  
          * @param businessObjectClass
 111  
          * @return DocumentEntry associated with the given Class, or null if there
 112  
          *         is none
 113  
          */
 114  
         public MaintenanceDocumentEntry getMaintenanceDocumentEntryForBusinessObjectClass(DataDictionaryIndex index, Class<?> businessObjectClass);
 115  
                 
 116  
         public Map<String, DocumentEntry> getDocumentEntries(DataDictionaryIndex index);
 117  
 
 118  
         public Set<InactivationBlockingMetadata> getAllInactivationBlockingMetadatas(DataDictionaryIndex index, Class<?> blockedClass);
 119  
         
 120  
         /**
 121  
          * Returns mapped document type based on the given document type.
 122  
          * 
 123  
          * @param documentType
 124  
          * @return new document type or null if given documentType was not found.
 125  
          */
 126  
         public String getDocumentTypeName(DataDictionaryIndex index, String documentTypeName);
 127  
         
 128  
         /**
 129  
          * Returns mapped document type class based on the given document type.
 130  
          * 
 131  
          * @param documentType
 132  
          * @return the class of the mapped document type or null if given documentType was not found.
 133  
          */
 134  
         //public Class getDocumentTypeClass(String documentTypeName);
 135  
         
 136  
         /**
 137  
          * Returns the View entry identified by the given id
 138  
          * 
 139  
          * @param index - the view dictionary index
 140  
          * @param viewId - unique id for view
 141  
          * @return View instance associated with the id
 142  
          */
 143  
         public View getViewById(UifDictionaryIndex index, String viewId);
 144  
         
 145  
         /**
 146  
          * Called to retrieve a <code>View</code> instance that is of the given type
 147  
          * based on the index key
 148  
          * 
 149  
          * @param index - the view dictionary index
 150  
          * @param viewTypeName
 151  
          *            - type name for the view
 152  
          * @param indexKey
 153  
          *            - Map of index key parameters, these are the parameters the
 154  
          *            indexer used to index the view initially and needs to identify
 155  
          *            an unique view instance
 156  
          * @return View instance that matches the given index
 157  
          */
 158  
         public View getViewByTypeIndex(UifDictionaryIndex index, ViewType viewTypeName, Map<String, String> indexKey);
 159  
 
 160  
     /**
 161  
      * Indicates whether a <code>View</code> exists for the given view type and index information
 162  
      *
 163  
      * @param index - the view dictionary index
 164  
      * @param viewTypeName - type name for the view
 165  
      * @param indexKey - Map of index key parameters, these are the parameters the
 166  
      * indexer used to index the view initially and needs to identify
 167  
      * an unique view instance
 168  
      * @return boolean true if view exists, false if not
 169  
      */
 170  
     public boolean viewByTypeExist(UifDictionaryIndex index, ViewType viewTypeName, Map<String, String> indexKey);
 171  
         
 172  
         /**
 173  
          * Gets all <code>View</code> prototypes configured for the given view type
 174  
          * name
 175  
          * 
 176  
          * @param index - the view dictionary index
 177  
          * @param viewTypeName
 178  
          *            - view type name to retrieve
 179  
          * @return List<View> view prototypes with the given type name, or empty
 180  
          *         list
 181  
          */
 182  
         public List<View> getViewsForType(UifDictionaryIndex index, UifConstants.ViewType viewTypeName);
 183  
 
 184  
     /**
 185  
      * Retrieves the configured property values for the view bean definition associated with the given id
 186  
      *
 187  
      * <p>
 188  
      * Since constructing the View object can be expensive, when metadata only is needed this method can be used
 189  
      * to retrieve the configured property values. Note this looks at the merged bean definition
 190  
      * </p>
 191  
      *
 192  
      * @param index - the view dictionary index
 193  
      * @param viewId - id for the view to retrieve
 194  
      * @return PropertyValues configured on the view bean definition, or null if view is not found
 195  
      */
 196  
     public PropertyValues getViewPropertiesById(UifDictionaryIndex index, String viewId);
 197  
 
 198  
     /**
 199  
      * Retrieves the configured property values for the view bean definition associated with the given type and
 200  
      * index
 201  
      *
 202  
      * <p>
 203  
      * Since constructing the View object can be expensive, when metadata only is needed this method can be used
 204  
      * to retrieve the configured property values. Note this looks at the merged bean definition
 205  
      * </p>
 206  
      *
 207  
      * @param index - the view dictionary index
 208  
      * @param viewTypeName - type name for the view
 209  
      * @param indexKey - Map of index key parameters, these are the parameters the indexer used to index
 210  
      * the view initially and needs to identify an unique view instance
 211  
      * @return PropertyValues configured on the view bean definition, or null if view is not found
 212  
      */
 213  
     public PropertyValues getViewPropertiesByType(UifDictionaryIndex index, UifConstants.ViewType viewTypeName,
 214  
             Map<String, String> indexKey);
 215  
 
 216  
 }