package org.dcache.gplazma.configuration; import com.google.common.base.Objects; import java.util.Properties; import static com.google.common.base.Preconditions.checkNotNull; /** * * @author timur */ public class ConfigurationItem { private final ConfigurationItemType type; private final ConfigurationItemControl control; private final String pluginName; private final Properties pluginProperties; public ConfigurationItem(ConfigurationItemType type, ConfigurationItemControl control, String pluginName, Properties pluginProperties) { this.type = checkNotNull(type, "type is null"); this.control = checkNotNull(control, "control is null"); this.pluginName = checkNotNull(pluginName, "pluginName is null"); this.pluginProperties = checkNotNull(pluginProperties, "pluginProperties is null"); } /** * @return the type */ public ConfigurationItemType getType() { return type; } /** * @return the control */ public ConfigurationItemControl getControl() { return control; } /** * @return the pluginName */ public String getPluginName() { return pluginName; } /** * @return the pluginConfiguration */ public Properties getPluginConfiguration() { return pluginProperties; } @Override public boolean equals(Object anObject) { if( !(anObject instanceof ConfigurationItem)) { return false; } ConfigurationItem anItem = (ConfigurationItem) anObject; if( !type.equals(anItem.type) || !control.equals(anItem.control) || !pluginName.equals(anItem.pluginName) ) { return false; } return Objects.equal(pluginProperties, anItem.pluginProperties); } @Override public int hashCode() { int hash = 7; hash = 83 * hash + type.hashCode(); hash = 83 * hash + control.hashCode(); hash = 83 * hash + pluginName.hashCode(); hash = 83 * hash + pluginProperties.hashCode(); return hash; } @Override public String toString() { return type + " " + control + " " + pluginName + " " + pluginProperties; } }