Project

General

Profile

1
package eu.dnetlib.enabling.is.sn;
2

    
3
import java.util.Collection;
4

    
5
/**
6
 * Stores subscriptions.
7
 * 
8
 * @author marko
9
 * 
10
 * @param <T>
11
 *            subscription type
12
 */
13
public interface SubscriptionDAO<T> {
14
	/**
15
	 * add a new subscription to the subscription store.
16
	 * 
17
	 * TODO: throw some exception on already existing subscription
18
	 * 
19
	 * @param subscription
20
	 *            subscription
21
	 */
22
	void addSubscription(T subscription);
23

    
24
	/**
25
	 * get a particular subscription.
26
	 * 
27
	 * @param subscriptionId identifier
28
	 * @return null if none
29
	 */
30
	T getSubscription(String subscriptionId);
31
	
32
	
33
	/**
34
	 * lists all subscriptions.
35
	 * 
36
	 * @return all subscriptions
37
	 */
38
	Collection<T> listSubscriptions();
39
	
40
	/**
41
	 * lists all subscriptions for a given prefix.
42
	 * 
43
	 * @param prefix topic expression prefix
44
	 * @return all matching subscriptions
45
	 */
46
	Collection<T> listSubscriptions(String prefix);
47
	
48
	/**
49
	 * removes a particular subscription.
50
	 * 
51
	 * @param subscriptionId identifier
52
	 * @return true if successful
53
	 */
54
	boolean removeSubscription(String subscriptionId);
55

    
56
}
(18-18/23)