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.krms.api.repository.term;
17  
18  import org.kuali.rice.core.api.mo.common.Identifiable;
19  import org.kuali.rice.core.api.mo.common.Versioned;
20  import org.kuali.rice.core.api.mo.common.active.Inactivatable;
21  
22  import java.util.Map;
23  import java.util.Set;
24  
25  /**
26   * <p>The contract for a {@link TermResolverDefinition} which defines a term resolver.
27   * </p>
28   * 
29   * @author Kuali Rice Team (rice.collab@kuali.org)
30   * @see TermResolverDefinition
31   * @see org.kuali.rice.krms.api.engine.TermResolver
32   */
33  public interface TermResolverDefinitionContract extends Identifiable, Inactivatable, Versioned {
34  
35      /**
36       * Gets the namespace for the defined term resolver. Will not be null or empty.
37       *
38       * @return the namespace
39       */
40  	String getNamespace();
41  
42      /**
43       * Gets the name for the defined term resolver.  The namespace and name should uniquely identify a
44       * term resolver definition.  Will not be null or empty.
45       *
46       * @return the name
47       */
48  	String getName();
49  
50      /**
51       * Gets the type id for the defined term resolver.  This id refers to a
52       * type which configures how the term resolver may be obtained.  May be null, but never empty.
53       *
54       * @return the type id.
55       */
56  	String getTypeId();
57  
58      /**
59       * Gets the term specification for the output of the defined term resolver.  Will never be null.
60       *
61       * @return the output term's specification.
62       */
63  	TermSpecificationDefinitionContract getOutput();
64  
65      /**
66       * Gets the term specifications for any prerequisite terms of the defined term resolver.  May be empty, but will
67       * never be null.
68       *
69       * @return any prerequisite terms.
70       */
71  	Set<? extends TermSpecificationDefinitionContract> getPrerequisites();
72  
73      /**
74       * Gets any attributes specified on the term resolver definition. May be empty, but never null.
75       *
76       * @return the attribute map for the term resolver definition.
77       */
78  	public Map<String, String> getAttributes();
79  
80      /**
81       * Gets the names of any parameters that the defined term resolver requires.  May be empty, but never null.
82       *
83       * @return the parameter names.
84       */
85  	Set<String> getParameterNames();
86  	
87  }