package context.arch.util; import context.arch.comm.DataObject; import context.arch.comm.DataObjects; import context.arch.storage.Attributes; import context.arch.storage.AttributeNameValue; /** * This class implements a subscriber object, encapsulating the information * needed to create a subscriber and send information to it. * * @see context.arch.subscriber.Subscribers */ public class Configuration { /** * Tag for a version */ public static final String VERSION = "VERSION"; /** * Tag for a configuration */ public static final String CONFIGURATION = "CONFIGURATION"; /** * Tag for author */ public static final String AUTHOR = "AUTHOR"; /** * Tag for description */ public static final String DESCRIPTION = "DESCRIPTION"; /** * Tag for parameters */ public static final String PARAMETERS = "PARAMETERS"; /** * Tag for widgets */ public static final String WIDGETS = "WIDGETS"; /** * Tag for interpreters */ public static final String INTERPRETERS = "INTERPRETERS"; /** * Tag for servers */ public static final String SERVERS = "SERVERS"; /** * Tag for other components */ public static final String OTHER_COMPONENTS = "OTHER_COMPONENTS"; private String version = null; private String description = null; private String author = null; private Attributes parameters = null; private ConfigObjects widgets = null; private ConfigObjects interpreters = null; private ConfigObjects servers = null; private ConfigObjects others = null; /** * Basic constructor that creates a configuration object from a DataObject. * The DataObject must contain a <CONFIGURATION> tag * * @param data DataObject containing the subscriber info */ public Configuration(DataObject data) { DataObject cfg = data.getDataObject(CONFIGURATION); if (cfg == null) { return; } version = (String)cfg.getDataObjectFirstValue(VERSION); description = (String)cfg.getDataObjectFirstValue(DESCRIPTION); author = (String)cfg.getDataObjectFirstValue(AUTHOR); DataObject paramsObj = cfg.getDataObject(PARAMETERS); if (paramsObj != null) { parameters = getParameters(paramsObj); } DataObject widgetsObj = cfg.getDataObject(WIDGETS); if (widgetsObj != null) { widgets = new ConfigObjects(widgetsObj); } DataObject interpretersObj = cfg.getDataObject(INTERPRETERS); if (interpretersObj != null) { interpreters = new ConfigObjects(interpretersObj); } DataObject serversObj = cfg.getDataObject(SERVERS); if (serversObj != null) { servers = new ConfigObjects(serversObj); } DataObject othersObj = cfg.getDataObject(OTHER_COMPONENTS); if (othersObj != null) { others = new ConfigObjects(othersObj); } } /** * This private method takes the parameter information and returns * an AttributeNameValues object containing the information. * * @param data DataObject containing parameter information * @return AttributeNameValues object containing the parameter info */ private Attributes getParameters(DataObject data) { Attributes atts = new Attributes(); DataObjects v = data.getChildren(); for (int i = 0; i < v.size(); i++) { DataObject d = (DataObject)v.elementAt(i); atts.add(new AttributeNameValue<String>(d.getName(), d.getValue())); } return atts; } /** * Returns the version number of this configuration * * @return the configuration version */ public String getVersion() { return version; } /** * Sets the version number of this configuration * * @param version Version of this configuration */ public void setVersion(String version) { this.version = version; } /** * Returns the author of this configuration * * @return the configuration author */ public String getAuthor() { return author; } /** * Sets the author of this configuration * * @param author Author of this configuration */ public void setAuthor(String author) { this.author = author; } /** * Returns the description of this configuration * * @return the configuration description */ public String getDescription() { return description; } /** * Sets the description of this configuration * * @param description Description of this configuration */ public void setDescription(String description) { this.description = description; } /** * Returns the parameters for this configuration * * @return the configuration parameters */ public Attributes getParameters() { return parameters; } /** * Sets the parameters for this configuration * * @param parameters Parameters for this configuration */ public void setParameters(Attributes parameters) { this.parameters = parameters; } /** * Returns the widget configurations for this configuration * * @return the widget configurations */ public ConfigObjects getWidgetConfigurations() { return widgets; } /** * Sets the widget configurations for this configuration * * @param widgets Widget configurations for this configuration */ public void setWidgetConfigurations(ConfigObjects widgets) { this.widgets = widgets; } /** * Returns the interpreter configurations for this configuration * * @return the interpreter configurations */ public ConfigObjects getInterpreterConfigurations() { return interpreters; } /** * Sets the interpreter configurations for this configuration * * @param interpreters Interpreter configurations for this configuration */ public void setInterpreterConfigurations(ConfigObjects interpreters) { this.interpreters = interpreters; } /** * Returns the server configurations for this configuration * * @return the server configurations */ public ConfigObjects getServerConfigurations() { return servers; } /** * Sets the server configurations for this configuration * * @param servers Server configurations for this configuration */ public void setServerConfigurations(ConfigObjects servers) { this.servers = servers; } /** * Returns the other component (not servers, widgets, or interpreters) * configurations for this configuration * * @return the other component configurations */ public ConfigObjects getOtherConfigurations() { return others; } /** * Sets the the other component (not servers, widgets, or interpreters) * configurations for this configuration * * @param others Other configurations for this configuration */ public void setOtherConfigurations(ConfigObjects others) { this.others = others; } }