/* | |||||
* Sonar, open source software quality management tool. | |||||
* Copyright (C) 2009 SonarSource SA | |||||
* mailto:contact AT sonarsource DOT com | |||||
* | |||||
* Sonar is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation; either | |||||
* version 3 of the License, or (at your option) any later version. | |||||
* | |||||
* Sonar is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
* Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public | |||||
* License along with Sonar; if not, write to the Free Software | |||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 | |||||
*/ | |||||
package org.sonar.check; | |||||
/** | |||||
* @since 2.3 | |||||
*/ | |||||
public enum Cardinality { | |||||
SINGLE, MULTIPLE | |||||
} |
*/ | */ | ||||
IsoCategory isoCategory(); | IsoCategory isoCategory(); | ||||
CARDINALITY cardinality() default CARDINALITY.SINGLE; | |||||
public static enum CARDINALITY { | |||||
SINGLE, MULTIPLE | |||||
} | |||||
} | |||||
Cardinality cardinality() default Cardinality.SINGLE; | |||||
} |
import org.apache.commons.lang.builder.HashCodeBuilder; | import org.apache.commons.lang.builder.HashCodeBuilder; | ||||
import org.apache.commons.lang.builder.ToStringBuilder; | import org.apache.commons.lang.builder.ToStringBuilder; | ||||
import org.sonar.api.database.DatabaseProperties; | import org.sonar.api.database.DatabaseProperties; | ||||
import org.sonar.check.Cardinality; | |||||
import javax.persistence.*; | import javax.persistence.*; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
@Enumerated(EnumType.STRING) | @Enumerated(EnumType.STRING) | ||||
@Column(name = "cardinality", updatable = true, nullable = false) | @Column(name = "cardinality", updatable = true, nullable = false) | ||||
private org.sonar.check.Rule.CARDINALITY cardinality = org.sonar.check.Rule.CARDINALITY.SINGLE; | |||||
private Cardinality cardinality = Cardinality.SINGLE; | |||||
@ManyToOne(fetch = FetchType.EAGER) | @ManyToOne(fetch = FetchType.EAGER) | ||||
@JoinColumn(name = "parent_id", updatable = true, nullable = true) | @JoinColumn(name = "parent_id", updatable = true, nullable = true) | ||||
return setRepositoryKey(repositoryKey).setKey(key).setConfigKey(key); | return setRepositoryKey(repositoryKey).setKey(key).setConfigKey(key); | ||||
} | } | ||||
public org.sonar.check.Rule.CARDINALITY getCardinality() { | |||||
public Cardinality getCardinality() { | |||||
return cardinality; | return cardinality; | ||||
} | } | ||||
public Rule setCardinality(org.sonar.check.Rule.CARDINALITY c) { | |||||
public Rule setCardinality(Cardinality c) { | |||||
this.cardinality = c; | this.cardinality = c; | ||||
return this; | return this; | ||||
} | } |
rule.setRulesCategory(new RulesCategory(category)); | rule.setRulesCategory(new RulesCategory(category)); | ||||
} else if (StringUtils.equalsIgnoreCase("cardinality", nodeName)) { | } else if (StringUtils.equalsIgnoreCase("cardinality", nodeName)) { | ||||
rule.setCardinality(org.sonar.check.Rule.CARDINALITY.valueOf(StringUtils.trim(cursor.collectDescendantText(false)))); | |||||
rule.setCardinality(org.sonar.check.Cardinality.valueOf(StringUtils.trim(cursor.collectDescendantText(false)))); | |||||
} else if (StringUtils.equalsIgnoreCase("param", nodeName)) { | } else if (StringUtils.equalsIgnoreCase("param", nodeName)) { | ||||
processParameter(rule, cursor); | processParameter(rule, cursor); |
import org.hamcrest.core.Is; | import org.hamcrest.core.Is; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
import org.sonar.api.utils.SonarException; | import org.sonar.api.utils.SonarException; | ||||
import org.sonar.check.Cardinality; | |||||
import java.io.StringReader; | import java.io.StringReader; | ||||
import java.util.List; | import java.util.List; | ||||
assertThat(rule.getName(), is("Local Variable Name")); | assertThat(rule.getName(), is("Local Variable Name")); | ||||
assertThat(rule.getDescription(), is("Checks that local, non-final variable names conform to a format specified by the format property.")); | assertThat(rule.getDescription(), is("Checks that local, non-final variable names conform to a format specified by the format property.")); | ||||
assertThat(rule.getPriority(), Is.is(RulePriority.BLOCKER)); | assertThat(rule.getPriority(), Is.is(RulePriority.BLOCKER)); | ||||
assertThat(rule.getCardinality(), Is.is(org.sonar.check.Rule.CARDINALITY.MULTIPLE)); | |||||
assertThat(rule.getCardinality(), Is.is(Cardinality.MULTIPLE)); | |||||
assertThat(rule.getConfigKey(), is("Checker/TreeWalker/LocalVariableName")); | assertThat(rule.getConfigKey(), is("Checker/TreeWalker/LocalVariableName")); | ||||
assertThat(rule.getParams().size(), is(2)); | assertThat(rule.getParams().size(), is(2)); |