View Javadoc
1   /**
2    * Copyright 2005-2014 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.bo.BusinessObject;
19  
20  /**
21   * This interface provides read-only metadata about inactivation blocking.  This metadata object is associated with a
22   * data object. The source of this information often comes from the data dictionary file.
23   *
24   * @author Kuali Rice Team (rice.collab@kuali.org)
25   */
26  public interface InactivationBlockingMetadata {
27  
28      /**
29       * The property name of the reference on the blocked object which points to the blocking object.
30       *
31       * @return the name of the blocking reference
32       * @deprecated use {@link #getBlockedAttributeName()} instead
33       */
34      @Deprecated
35      String getBlockedReferencePropertyName();
36  
37      /**
38       * The name of the attribute which is blocked by the blocking object.
39       *
40       * @return the name of the blocked attribute
41       */
42      String getBlockedAttributeName();
43  
44      /**
45       * The type of the object that is blocked.
46       *
47       * @return the type of the business object that is blocked
48       *
49       * @deprecated use {@link #getBlockedDataObjectClass()} instead, there is no requirement that the blocked class
50       *             must implement the deprecated {@link BusinessObject} interface.
51       */
52      @Deprecated
53      Class<? extends BusinessObject> getBlockedBusinessObjectClass();
54  
55      /**
56       * Returns the type of the data object that is blocked.
57       *
58       * @return the type of the data object that is blocked, should never be null
59       */
60      Class<?> getBlockedDataObjectClass();
61  
62      /**
63       * The bean name of the service that is responsible for determining whether there are any records that block
64       * inactivation
65       */
66      String getInactivationBlockingDetectionServiceBeanName();
67  
68      /**
69       * The type of the object that is blocking another record.
70       *
71       * @return the type of the object that is blocking
72       *
73       * @deprecated use {@link #getBlockingDataObjectClass()} instead, there is no requirement that the blocking class
74       *             must implement the deprecated {@link BusinessObject} interface.
75       */
76      @Deprecated
77      Class<? extends BusinessObject> getBlockingReferenceBusinessObjectClass();
78  
79      /**
80       * The type of the object that is blocking another record.
81       *
82       * @return the type of the object that is blocking, should never be null
83       */
84      Class<?> getBlockingDataObjectClass();
85  
86  
87      /**
88       * Returns the human-meaningful name of the relationship
89       *
90       * @return relationship label
91       */
92      String getRelationshipLabel();
93  }