1 package cz.cuni.amis.utils.configuration;
2
3 /**
4 * Property provider is responsible for one type of property storage.
5 * Eg. some specific file.
6 * @author ik
7 */
8 public abstract class PropertyProvider implements Comparable<PropertyProvider> {
9
10 /**
11 * Priority of this provider. It will be asked for property value before all
12 * providers with lower priority.
13 * @return
14 */
15 abstract public int getPriority();
16
17 /**
18 * Searches for given property key.
19 * @param key
20 * @return null if the property wasn't found
21 */
22 abstract public String getProperty(String key);
23
24 @Override
25 public int compareTo(PropertyProvider o) {
26 return o.getPriority() - getPriority();
27 }
28 }