View Javadoc

1   /**
2    * Copyright 2005-2012 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.uif.component;
17  
18  import java.util.Map;
19  
20  /**
21   * Marks any class that can be configured through the UIF dictionary
22   *
23   * <p>
24   * Indicates behavior that must be supported by an Class that can be configured through
25   * the UIF dictionary, such as property expressions.
26   * </p>
27   *
28   * @author Kuali Rice Team (rice.collab@kuali.org)
29   */
30  public interface Configurable {
31  
32      /**
33       * Map of expressions that should be evaluated to conditionally set a property on the component
34       *
35       * <p>
36       * When configuring a component property through XML an expression can be given using the @{} placeholder. During
37       * the loading of the XML any such expressions are captured and placed into this Map, with the property they apply
38       * to set as the Map key. The expressions are then evaluated during the apply model phase and the result is set as
39       * the property value.
40       * </p>
41       *
42       * <p>
43       * Note after the expression is picked up, the property configuration is removed. Thus the property in the
44       * component will only have its default object value until the expression is evaluated
45       * </p>
46       *
47       * @return Map<String, String> map of expressions where key is property name and value is expression to evaluate
48       */
49      public Map<String, String> getPropertyExpressions();
50  
51      /**
52       * Setter for the Map of property expressions
53       *
54       * @param propertyExpressions
55       */
56      public void setPropertyExpressions(Map<String, String> propertyExpressions);
57  
58      /**
59       * Returns the expression configured for the property with the given name
60       *
61       * @return String expression for property or null if expression is not configured
62       * @see Component#getPropertyExpressions()
63       */
64      public String getPropertyExpression(String propertyName);
65  }