001    /*
002     * SonarQube, open source software quality management tool.
003     * Copyright (C) 2008-2014 SonarSource
004     * mailto:contact AT sonarsource DOT com
005     *
006     * SonarQube is free software; you can redistribute it and/or
007     * modify it under the terms of the GNU Lesser General Public
008     * License as published by the Free Software Foundation; either
009     * version 3 of the License, or (at your option) any later version.
010     *
011     * SonarQube is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014     * Lesser General Public License for more details.
015     *
016     * You should have received a copy of the GNU Lesser General Public License
017     * along with this program; if not, write to the Free Software Foundation,
018     * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
019     */
020    package org.sonar.api.rules;
021    
022    public class ActiveRuleParam implements Cloneable {
023    
024      private Integer id;
025      private ActiveRule activeRule;
026      private RuleParam ruleParam;
027      private String paramKey;
028      private String value;
029    
030      public Integer getId() {
031        return id;
032      }
033    
034      /**
035       * @deprecated visibility should be decreased to protected or package
036       */
037      @Deprecated
038      void setId(Integer id) {
039        this.id = id;
040      }
041    
042      /**
043       * @deprecated visibility should be decreased to protected or package
044       */
045      @Deprecated
046      public ActiveRuleParam() {
047      }
048    
049      /**
050       * @deprecated visibility should be decreased to protected or package
051       */
052      @Deprecated
053      public ActiveRuleParam(ActiveRule activeRule, RuleParam ruleParam, String value) {
054        this.activeRule = activeRule;
055        this.ruleParam = ruleParam;
056        this.value = value;
057        this.paramKey = ruleParam.getKey();
058      }
059    
060      public ActiveRule getActiveRule() {
061        return activeRule;
062      }
063    
064      /**
065       * @deprecated visibility should be decreased to protected or package
066       */
067      @Deprecated
068      public void setActiveRule(ActiveRule activeRule) {
069        this.activeRule = activeRule;
070      }
071    
072      public RuleParam getRuleParam() {
073        return ruleParam;
074      }
075    
076      /**
077       * @deprecated visibility should be decreased to protected or package
078       */
079      @Deprecated
080      public void setRuleParam(RuleParam ruleParam) {
081        this.ruleParam = ruleParam;
082      }
083    
084      public String getValue() {
085        return value;
086      }
087    
088      public void setValue(String value) {
089        this.value = value;
090      }
091    
092      public String getParamKey() {
093        return paramKey;
094      }
095    
096      public void setParamKey(String paramKey) {
097        this.paramKey = paramKey;
098      }
099    
100    
101      public String getKey() {
102        return ruleParam.getKey();
103      }
104    
105      @Override
106      public boolean equals(Object obj) {
107        if (!(obj instanceof ActiveRuleParam)) {
108          return false;
109        }
110        if (this == obj) {
111          return true;
112        }
113        ActiveRuleParam other = (ActiveRuleParam) obj;
114        return other.getKey().equals(getKey());
115      }
116    
117      @Override
118      public int hashCode() {
119        return getKey().hashCode();
120      }
121    
122      @Override
123      public Object clone() {
124        return new ActiveRuleParam(getActiveRule(), getRuleParam(), getValue());
125      }
126    
127    }