import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import javax.persistence.*;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+
+import java.util.*;
@Entity
@Table(name = "rules")
@Column(name = "updated_at", updatable = true, nullable = true)
private Date updatedAt;
+ @Transient
+ private transient Set<String> tags = Collections.unmodifiableSet(new HashSet<String>());
+
/**
* @deprecated since 2.3. Use the factory method {@link #create()}
*/
return parameter;
}
+ public Collection<String> getTags() {
+ return tags;
+ }
+
+ public Rule setTags(String... tags) {
+ Set<String> newTags = new HashSet<String>();
+ newTags.addAll(Arrays.asList(tags));
+ this.tags = Collections.unmodifiableSet(newTags);
+ return this;
+ }
+
/**
* @deprecated since 2.5. See http://jira.codehaus.org/browse/SONAR-2007
*/
return Arrays.asList("te\nst", "te\ns\nt", "te\rst", "te\n\rst", "te\r\nst");
}
+ @Test
+ public void should_manage_tags() {
+ String tag1 = "tag1";
+ String tag2 = "tag2";
+ String tag3 = "tag3";
+ Rule rule = Rule.create();
+
+ assertThat(rule.getTags()).isEmpty();
+ assertThat(rule.setTags(tag1, tag2, tag3).getTags()).containsOnly(tag1, tag2, tag3);
+ assertThat(rule.setTags(tag1, tag2).getTags()).containsOnly(tag1, tag2);
+ assertThat(rule.setTags().getTags()).isEmpty();
+ }
}