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.service;
17
18 import org.kuali.rice.krad.bo.BusinessObject;
19 import org.kuali.rice.krad.bo.DataObjectRelationship;
20 import org.kuali.rice.krad.datadictionary.RelationshipDefinition;
21 import org.kuali.rice.krad.valuefinder.ValueFinder;
22 import org.kuali.rice.krad.service.DataObjectMetaDataService;
23
24 import java.util.Collection;
25 import java.util.List;
26 import java.util.Map;
27
28 /**
29 * Provides Metadata about a specific BusinessObject. Depending on the circumstance or type
30 * of BO it will retrieve the data it needs from either the DataDictionary or through the
31 * PersistenceStructureService
32 *
33 * @author Kuali Rice Team (rice.collab@kuali.org)
34 */
35 @Deprecated
36 public interface BusinessObjectMetaDataService extends DataObjectMetaDataService {
37
38 @Deprecated
39 public DataObjectRelationship getBusinessObjectRelationship(RelationshipDefinition ddReference,
40 BusinessObject bo, Class boClass, String attributeName, String attributePrefix, boolean keysOnly);
41
42 @Deprecated
43 public RelationshipDefinition getBusinessObjectRelationshipDefinition(Class c, String attributeName);
44
45 @Deprecated
46 public RelationshipDefinition getBusinessObjectRelationshipDefinition(BusinessObject bo, String attributeName);
47
48 /**
49 *
50 * This method returns a list of inquirable field names
51 *
52 * @param bo
53 * @return a collection of inquirable field names
54 */
55 @Deprecated
56 public Collection<String> getInquirableFieldNames(Class boClass, String sectionTitle);
57
58 /**
59 *
60 * This method returns a list of lookupable fields
61 *
62 * @param bo
63 * @return a collection of lookupable fields
64 */
65 @Deprecated
66 public List<String> getLookupableFieldNames(Class boClass);
67
68 /**
69 *
70 * This method looks up the default value for a given attribute and returns
71 * it
72 *
73 * @param businessObjectClass
74 * @param attributeName
75 * @return default value for an attribute
76 */
77 @Deprecated
78 public String getLookupFieldDefaultValue(Class businessObjectClass, String attributeName);
79
80 /**
81 *
82 * This method returns the value finder class for a given attribute
83 *
84 * @param businessObjectClass
85 * @param attributeName
86 * @return value finder class
87 */
88 @Deprecated
89 public Class getLookupFieldDefaultValueFinderClass(Class businessObjectClass, String attributeName);
90
91 /**
92 *
93 * This method looks up the quickfinder parameter string for a given
94 * attribute and returns it. See
95 * {@link org.kuali.rice.kns.datadictionary.FieldDefinition#getQuickfinderParameterString()}.
96 *
97 * @param businessObjectClass
98 * @param attributeName
99 * @return default values for attributes
100 */
101 @Deprecated
102 public String getLookupFieldQuickfinderParameterString(Class businessObjectClass, String attributeName);
103
104 /**
105 * This method returns the quickfinder parameter string builder class for a
106 * given attribute. See
107 * {@link org.kuali.rice.kns.datadictionary.FieldDefinition#getQuickfinderParameterStringBuilderClass()}.
108 *
109 * @param businessObjectClass
110 * @param attributeName
111 * @return value finder class
112 */
113 @Deprecated
114 public Class<? extends ValueFinder> getLookupFieldQuickfinderParameterStringBuilderClass(Class businessObjectClass,
115 String attributeName);
116
117 /**
118 *
119 * This method returns a list of collection names a business object contains
120 *
121 * @param bo
122 * @return
123 */
124 @Deprecated
125 public Collection<String> getCollectionNames(BusinessObject bo);
126
127 /**
128 *
129 * This method determines if a given field(attribute) is inquirable or not
130 * This handles both nested and non-nested attributes
131 *
132 * @param bo
133 * @param attributeName
134 * @param sectionTitle
135 * @return true if field is inquirable
136 */
137 @Deprecated
138 public boolean isAttributeInquirable(Class boClass, String attributeName, String sectionTitle);
139
140 /**
141 *
142 * This method determines if a given business object is inquirable
143 *
144 * @param bo
145 * @return true if bo is inquirable
146 */
147 @Deprecated
148 public boolean isInquirable(Class boClass);
149
150 /**
151 *
152 * This method determines if a given field(attribute) is lookupable or not
153 * This handles both nested and non-nested attributes
154 *
155 * @param bo
156 * @param attributeName
157 * @return true if field is lookupable
158 */
159 @Deprecated
160 public boolean isAttributeLookupable(Class boClass, String attributeName);
161
162 /**
163 *
164 * This method determines if a given business object is lookupable
165 *
166 * @param bo
167 * @return true if bo is lookupable
168 */
169 @Deprecated
170 public boolean isLookupable(Class boClass);
171
172 /**
173 *
174 * This method will return a class that is related to the parent BO (either
175 * through the DataDictionary or through the PersistenceStructureService)
176 *
177 * @param bo
178 * @param attributes
179 * @return related class
180 */
181 @Deprecated
182 public DataObjectRelationship getBusinessObjectRelationship(BusinessObject bo, String attributeName);
183
184 @Deprecated
185 public DataObjectRelationship getBusinessObjectRelationship(BusinessObject bo, Class boClass,
186 String attributeName, String attributePrefix, boolean keysOnly);
187
188
189
190 /**
191 * Get all the business object relationships for the given business object.
192 * These relationships may be defined at the ORM-layer or within the data
193 * dictionary.
194 */
195 @Deprecated
196 public List<DataObjectRelationship> getBusinessObjectRelationships(BusinessObject bo);
197
198 /**
199 * Get all the business object relationships for the given class. These
200 * relationships may be defined at the ORM-layer or within the data
201 * dictionary.
202 */
203 @Deprecated
204 public List<DataObjectRelationship> getBusinessObjectRelationships(Class<? extends BusinessObject> boClass);
205
206 /**
207 * This method accepts a business object and one of its foreign key
208 * attribute names. It returns a map that has a foreign key attribute name
209 * as a key and its respective related class as value. If the passed in
210 * attributeName is not a foreign key, this method will return an empty map.
211 *
212 * @param BusinessObject
213 * businessObject
214 * @param String
215 * attributeName
216 * @return Map<String, Class>
217 */
218 @Deprecated
219 public Map<String, Class> getReferencesForForeignKey(BusinessObject businessObject, String attributeName);
220
221 /**
222 *
223 * This method ...
224 *
225 * @param businessObjectClass
226 * @param attributeName
227 * @param targetName
228 * @return
229 */
230 @Deprecated
231 public String getForeignKeyFieldName(Class businessObjectClass, String attributeName, String targetName);
232 }