View Javadoc
1   /*
2    * Licensed to The Apereo Foundation under one or more contributor license
3    * agreements. See the NOTICE file distributed with this work for additional
4    * information regarding copyright ownership.
5    *
6    *
7    * The Apereo Foundation licenses this file to you under the Educational
8    * Community License, Version 2.0 (the "License"); you may not use this file
9    * except in compliance with the License. You may obtain a copy of the License
10   * at:
11   *
12   *   http://opensource.org/licenses/ecl2.txt
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
17   * License for the specific language governing permissions and limitations under
18   * the License.
19   *
20   */
21  
22  package org.opencastproject.workflow.api;
23  
24  import java.util.Set;
25  
26  /**
27   * A configurable entity.
28   *
29   */
30  public interface Configurable {
31    /**
32     * Returns the value of property <code>name</code> or <code>null</code> if no such property has been set.
33     *
34     * @param key
35     *          the configuration key
36     * @return the configuration value
37     */
38    String getConfiguration(String key);
39  
40    /**
41     * Sets the configuration with name <code>key</code> to value <code>value</code>, or adds it if it doesn't already
42     * exist.
43     *
44     * @param key
45     *          the configuration key
46     * @param value
47     *          the configuration value
48     */
49    void setConfiguration(String key, String value);
50  
51    /**
52     * Gets the configuration keys that are currently set for this configurable entity.
53     *
54     * @return the configuration keys
55     */
56    Set<String> getConfigurationKeys();
57  
58    /**
59     * Removes the <code>key</code> configuration.
60     *
61     * @param key
62     *          the configuration key
63     */
64    void removeConfiguration(String key);
65  
66  }