make Configuration an interface
-------------------------------
Key: HADOOP-24
URL: http://issues.apache.org/jira/browse/HADOOP-24
Project: Hadoop
Type: Improvement
Components: conf
Reporter: Doug Cutting
The Configuration class should become an interface, e.g.:
public interface Configuration {
String get(String nam);
String set(String name, String value);
int getInt(String name);
void setInt(String name, int value);
float getFloat(String name);
void setFloat(String name, float value);
//... other utility methods based on get(String) and set(String,String) ...
}
An abstract class named ConfigurationBase should be implemented as follows:
public abstract class ConfigurationBase implements Configuration {
abstract public String get(String nam);
abstract public String set(String name, String value);
public int getInt(String name) { ... implementation in terms of get(String)
... }
public void setInt(String name, int value) {... implementation in terms of
set(String, String) ...}
public float getFloat(String name) { ... implementation in terms of
get(String) ... }
public void setFloat(String name, float value) {... implementation in terms
of set(String, String) ...}
//... other utility methods based on get(String) and set(String,String) ...
}
A concrete, default implementation will be provided as follows:
public class ConfigurationImpl implements Writable extends ConfigurationBase {
private Properties properties;
// implement abstract methods from ConfigurationBase
public String get(String name) { ... implemented in terms of props ...}
public String set(String name, String value) { .. implemented in terms of
props ... }
// Writable methods
public write(DataOutputStream out);
public readFields(DataInputStream in);
// permit chaining of configurations
public Configuration getDefaults();
public void setDefaults(Configuration defaults);
}
Only code which creates configurations should need to be updated, so this
shouldn't be a huge change.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira