001package de.deepamehta.plugins.config;
002
003import de.deepamehta.core.model.TopicModel;
004
005
006
007public class ConfigDefinition {
008
009    // ---------------------------------------------------------------------------------------------- Instance Variables
010
011    private ConfigTarget target;
012    private String configurableUri;
013    private TopicModel defaultConfigTopic;
014    private ConfigModificationRole role;
015
016    // ---------------------------------------------------------------------------------------------------- Constructors
017
018    public ConfigDefinition(ConfigTarget target, String configurableUri, TopicModel defaultConfigTopic,
019                                                                         ConfigModificationRole role) {
020        this.target = target;
021        this.configurableUri = configurableUri;
022        this.defaultConfigTopic = defaultConfigTopic;
023        this.role = role;
024    }
025
026    // -------------------------------------------------------------------------------------------------- Public Methods
027
028    @Override
029    public boolean equals(Object o) {
030        return getConfigTypeUri().equals(((ConfigDefinition) o).getConfigTypeUri());
031    }
032
033    @Override
034    public int hashCode() {
035        return getConfigTypeUri().hashCode();
036    }
037
038    // ----------------------------------------------------------------------------------------- Package Private Methods
039
040    String getHashKey() {
041        return target.hashKey(configurableUri);
042    }
043
044    String getConfigTypeUri() {
045        return defaultConfigTopic.getTypeUri();
046    }
047
048    TopicModel getDefaultConfigTopic() {
049        return defaultConfigTopic;
050    }
051
052    ConfigModificationRole getConfigModificationRole() {
053        return role;
054    }
055}