01: package org.objectweb.celtix.configuration;
02:
03: import javax.xml.namespace.QName;
04:
05: /**
06: * Interface to access configuration metadata accessed at runtime.
07: * Acts as a restricted view on configuration metadata, e.g. does
08: * not provide access to a configuration item's documentation.
09: */
10: public interface ConfigurationItemMetadata {
11:
12: public enum LifecyclePolicy {
13: STATIC, PROCESS, BUS, DYNAMIC
14: };
15:
16: /**
17: * Returns the name of this configuration metadata item which must be unique within
18: * its <code>ConfigurationMetadata</code> container.
19: *
20: * @return the name of the configuration item.
21: */
22: String getName();
23:
24: /**
25: * Returns the type of this configuration metadata item as a <code>QName</code>.
26: * The namespaceURI of this <code>QName</code> identifies the XML schema containing the
27: * definition of the (complex or simple) type of this item. The local part
28: * identifies a global element in that schema that is of the underlying type.
29: *
30: * @return the type of this configuration metadata item.
31: */
32: QName getType();
33:
34: /**
35: * Returns the lifecycle policy for this configuration metadata item. Depending on this value,
36: * concrete instances of this configuration metadata item (configuration items) will have values that
37: * can never change, can be set once pre process/bus or can be modified ar any time.
38: *
39: * @return the lifecycle policy of this configuration metadata item.
40: */
41: LifecyclePolicy getLifecyclePolicy();
42:
43: /**
44: * Returns the default value of this configuration metadata item. The runtime class of this value
45: * depends on the jaxb schema binding for the type of this item. For primitive data types it
46: * is a holder class, e.g. java.lang.Boolean.
47: *
48: * @return the default value of this configuration metadata item.
49: */
50: Object getDefaultValue();
51:
52: }
|