Added active flag to contacts.

This commit is contained in:
akwizgran
2016-02-17 18:10:52 +00:00
parent 6b76b75d08
commit a6baa5821e
14 changed files with 186 additions and 59 deletions

View File

@@ -8,11 +8,14 @@ public class Contact {
private final ContactId id;
private final Author author;
private final AuthorId localAuthorId;
private final boolean active;
public Contact(ContactId id, Author author, AuthorId localAuthorId) {
public Contact(ContactId id, Author author, AuthorId localAuthorId,
boolean active) {
this.id = id;
this.author = author;
this.localAuthorId = localAuthorId;
this.active = active;
}
public ContactId getId() {
@@ -27,6 +30,10 @@ public class Contact {
return localAuthorId;
}
public boolean isActive() {
return active;
}
@Override
public int hashCode() {
return id.hashCode();

View File

@@ -19,17 +19,21 @@ public interface ContactManager {
* Stores a contact associated with the given local and remote pseudonyms,
* and returns an ID for the contact.
*/
ContactId addContact(Author remote, AuthorId local) throws DbException;
ContactId addContact(Author remote, AuthorId local, boolean active)
throws DbException;
/** Returns the contact with the given ID. */
Contact getContact(ContactId c) throws DbException;
/** Returns all contacts. */
Collection<Contact> getContacts() throws DbException;
/** Returns all active contacts. */
Collection<Contact> getActiveContacts() throws DbException;
/** Removes a contact and all associated state. */
void removeContact(ContactId c) throws DbException;
/** Marks a contact as active or inactive. */
void setContactActive(ContactId c, boolean active) throws DbException;
interface AddContactHook {
void addingContact(Transaction txn, Contact c) throws DbException;
}