package eu.lod2.rsine.registrationservice;
import eu.lod2.rsine.dissemination.notifier.INotifier;
import eu.lod2.util.Namespaces;
import org.openrdf.model.Resource;
import org.openrdf.model.ValueFactory;
import org.openrdf.model.impl.ValueFactoryImpl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class Subscription {
private static int auto_id = 0;
private Resource id;
private String description = "";
private Collection<NotificationQuery> queries = new HashSet<NotificationQuery>();
private Collection<INotifier> notifiers;
public Subscription() {
ValueFactory valueFactory = ValueFactoryImpl.getInstance();
id = valueFactory.createURI(
Namespaces.RSINE_NAMESPACE.getName(),
"subscriber_" + auto_id);
notifiers = new ArrayList<INotifier>();
auto_id++;
}
public Resource getId() {
return id;
}
public void setId(Resource id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Iterator<NotificationQuery> getQueries() {
return queries.iterator();
}
public void addQuery(NotificationQuery query) {
queries.add(query);
}
public void addNotifier(INotifier notifier) {
notifiers.add(notifier);
}
public Iterator<INotifier> getNotifierIterator() {
return notifiers.iterator();
}
@Override
public boolean equals(Object obj) {
return obj instanceof Subscription && id.equals(((Subscription) obj).id);
}
@Override
public int hashCode() {
return id.hashCode();
}
}