package com.rayo.storage.riak;
import java.util.ArrayList;
import java.util.Collection;
import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.annotate.JsonProperty;
import com.basho.riak.client.RiakLink;
import com.basho.riak.client.convert.RiakKey;
import com.basho.riak.client.convert.RiakLinks;
public class RiakFilter {
@RiakKey
private String id;
@JsonProperty
private String name;
@RiakLinks
private transient Collection<RiakLink> applicationLinks;
@JsonCreator
public RiakFilter(@JsonProperty("id") String id) {
this.id = id;
this.name = id;
applicationLinks = new ArrayList<RiakLink>();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public void addFilter(String jid) {
RiakLink link = new RiakLink("applications", jid, "applications");
if (!applicationLinks.contains(link)) {
applicationLinks.add(link);
}
}
public void removeFilter(String jid) {
applicationLinks.remove(new RiakLink("applications", jid, "applications"));
}
public void removeAllFilters() {
applicationLinks.clear();
}
public Collection<RiakLink> getApplicationLinks() {
return applicationLinks;
}
public void setApplicationLinks(Collection<RiakLink> applicationLinks) {
this.applicationLinks = applicationLinks;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}