Converted database events from an enum to classes to allow them to

carry data.
This commit is contained in:
akwizgran
2011-10-17 22:47:38 +01:00
parent 89001e4c91
commit ec56b12384
18 changed files with 165 additions and 80 deletions

View File

@@ -9,6 +9,7 @@ import net.sf.briar.api.Rating;
import net.sf.briar.api.TransportConfig;
import net.sf.briar.api.TransportId;
import net.sf.briar.api.TransportProperties;
import net.sf.briar.api.db.event.DatabaseListener;
import net.sf.briar.api.protocol.Ack;
import net.sf.briar.api.protocol.AuthorId;
import net.sf.briar.api.protocol.Batch;

View File

@@ -1,15 +0,0 @@
package net.sf.briar.api.db;
/** An interface for receiving notifications when database events occur. */
public interface DatabaseListener {
static enum Event {
BATCH_RECEIVED,
CONTACTS_UPDATED,
MESSAGES_ADDED,
SUBSCRIPTIONS_UPDATED,
TRANSPORTS_UPDATED
};
void eventOccurred(Event e);
}

View File

@@ -0,0 +1,5 @@
package net.sf.briar.api.db.event;
public class BatchReceivedEvent extends DatabaseEvent {
}

View File

@@ -0,0 +1,16 @@
package net.sf.briar.api.db.event;
import net.sf.briar.api.ContactId;
public class ContactAddedEvent extends DatabaseEvent {
private final ContactId contactId;
public ContactAddedEvent(ContactId contactId) {
this.contactId = contactId;
}
public ContactId getContactId() {
return contactId;
}
}

View File

@@ -0,0 +1,10 @@
package net.sf.briar.api.db.event;
import net.sf.briar.api.ContactId;
public class ContactRemovedEvent extends ContactAddedEvent {
public ContactRemovedEvent(ContactId contactId) {
super(contactId);
}
}

View File

@@ -0,0 +1,5 @@
package net.sf.briar.api.db.event;
public abstract class DatabaseEvent {
}

View File

@@ -0,0 +1,8 @@
package net.sf.briar.api.db.event;
/** An interface for receiving notifications when database events occur. */
public interface DatabaseListener {
void eventOccurred(DatabaseEvent e);
}

View File

@@ -0,0 +1,5 @@
package net.sf.briar.api.db.event;
public class MessagesAddedEvent extends DatabaseEvent {
}

View File

@@ -0,0 +1,19 @@
package net.sf.briar.api.db.event;
import java.util.Collection;
import net.sf.briar.api.ContactId;
public class SubscriptionsUpdatedEvent extends DatabaseEvent {
private final Collection<ContactId> affectedContacts;
// FIXME: Replace this constructor
public SubscriptionsUpdatedEvent() {
affectedContacts = null;
}
public Collection<ContactId> getAffectedContacts() {
return affectedContacts;
}
}

View File

@@ -0,0 +1,5 @@
package net.sf.briar.api.db.event;
public class TransportsUpdatedEvent extends DatabaseEvent {
}