1 package org.naftulin.configmgr;
2
3 import java.io.Serializable;
4 import java.util.Date;
5
6 import org.naftulin.configmgr.parsers.ConfigEntryParser;
7
8 /***
9 * Configuration management entry associates a key to a configuration, stored as a content.
10 * In addition to key and content, it registers the file name from which a configuration was read,
11 * whether the configuration is in an error state, and whether or not it was overwritten.
12 * The entry is considered to be in error, if it cannot be parsed from the configuration file.
13 * In such case, instead of the configuration, an exception would be stored in the configuration entry
14 * content. If the configuration in error is requested, the exception is returned.
15 * The owervritten stands flag is to show whether a configuration was programmatically
16 * ovewrittend (by using {@link ConfigurationManagement#addConfigurationManagmentEntry(ConfigurationManagementEntry)
17 * add configuration method}. Otherwise it is false; it is also reset when reload is called
18 * on {@link ConfigurationManagement ConfigurationManagement}. It could also be set by user.
19 *
20 * @author Henry Naftulin
21 * @since 1.0
22 */
23 public interface ConfigurationManagementEntry extends Serializable {
24 /***
25 * Returns configuration the key associated with this record.
26 * @return configuration the key associated with this record.
27 */
28 String getKey();
29
30 /***
31 * Returns the file name from where the configuration was read.
32 * @return the file name from where the configuration was read.
33 */
34 String getFileName();
35
36 /***
37 * Returns true if the record was overwritten.
38 * @return true if the record was overwritten.
39 */
40 boolean isOverwritten();
41
42 /***
43 * Returns true if the record is in error state.
44 * @return true if the record is in error state.
45 */
46 boolean isError();
47 /***
48 * Returns the parsed configuration.
49 * @return the parsed configuration.
50 */
51 Object getContent();
52
53 /***
54 * Returns the string representation of this entry.
55 * @return the string representation of this entry.
56 */
57 String toString();
58
59 /***
60 * Returns the date and time when this entry was created.
61 * @return the date and time when this entry was created.
62 */
63 Date getCreateDate();
64
65 /***
66 * Returns the date and time when this entry was modified.
67 * @return the date and time when this entry was modified.
68 */
69 Date getModifiedDate();
70
71 /***
72 * Sets the date the entry was modified.
73 * @param modifiedDate modified date
74 */
75 void setModifiedDate(Date modifiedDate);
76
77 /***
78 * Returns the processor that parsed the cofiguration from the configuration file.
79 * @return the processor that parsed the cofiguration from the configuration file.
80 */
81 ConfigEntryParser getProcessor();
82
83 /***
84 * Sets the owerwritten flag.
85 * @param overwritten true if the record was overwritten.
86 */
87 void setOverwritten(boolean overwritten);
88
89 /***
90 * Returns the configuration type of this entry.
91 * @return the configuration type of this entry.
92 */
93 ConfigurationType getConfigurationType();
94
95 }