Unify all private message requests in one PrivateRequest class

This commit is contained in:
Torsten Grote
2018-09-04 18:28:12 -03:00
parent 2d9345c018
commit 59fae2fa3c
37 changed files with 288 additions and 323 deletions

View File

@@ -1,27 +1,22 @@
package org.briarproject.briar.api.blog;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.messaging.PrivateRequest;
import javax.annotation.Nullable;
@NotNullByDefault
public class BlogInvitationRequest extends InvitationRequest<Blog> {
public class BlogInvitationRequest extends PrivateRequest<Blog> {
public BlogInvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, Blog blog, ContactId contactId,
SessionId sessionId, Blog blog,
@Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId, blog,
message, available, canBeOpened);
}
public String getBlogAuthorName() {
return getShareable().getName();
}
}

View File

@@ -3,7 +3,7 @@ package org.briarproject.briar.api.blog.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.blog.Blog;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent;
import javax.annotation.concurrent.Immutable;
@@ -14,7 +14,7 @@ public class BlogInvitationRequestReceivedEvent extends
InvitationRequestReceivedEvent<Blog> {
public BlogInvitationRequestReceivedEvent(Blog blog, ContactId contactId,
InvitationRequest<Blog> request) {
PrivateRequest<Blog> request) {
super(blog, contactId, request);
}

View File

@@ -1,29 +1,24 @@
package org.briarproject.briar.api.forum;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.messaging.PrivateRequest;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class ForumInvitationRequest extends InvitationRequest<Forum> {
public class ForumInvitationRequest extends PrivateRequest<Forum> {
public ForumInvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, Forum forum, ContactId contactId,
SessionId sessionId, Forum forum,
@Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId, forum,
message, available, canBeOpened);
}
public String getForumName() {
return getShareable().getName();
}
}

View File

@@ -3,7 +3,7 @@ package org.briarproject.briar.api.forum.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.forum.Forum;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.event.InvitationRequestReceivedEvent;
import javax.annotation.concurrent.Immutable;
@@ -14,7 +14,7 @@ public class ForumInvitationRequestReceivedEvent extends
InvitationRequestReceivedEvent<Forum> {
public ForumInvitationRequestReceivedEvent(Forum forum, ContactId contactId,
InvitationRequest<Forum> request) {
PrivateRequest<Forum> request) {
super(forum, contactId, request);
}

View File

@@ -0,0 +1,32 @@
package org.briarproject.briar.api.introduction;
import org.briarproject.bramble.api.identity.Author;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.messaging.Nameable;
import javax.annotation.concurrent.Immutable;
import static org.briarproject.briar.api.introduction.Role.INTRODUCER;
@Immutable
@NotNullByDefault
public class Introduction implements Nameable {
private final Author introducedAuthor;
private final Role ourRole;
public Introduction(Author introducedAuthor, Role ourRole) {
this.introducedAuthor = introducedAuthor;
this.ourRole = ourRole;
}
@Override
public String getName() {
return introducedAuthor.getName();
}
public boolean isIntroducer() {
return ourRole == INTRODUCER;
}
}

View File

@@ -7,6 +7,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.ClientId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import java.util.Collection;
@@ -50,7 +51,7 @@ public interface IntroductionManager extends ConversationClient {
/**
* Returns all introduction messages for the given contact.
*/
Collection<IntroductionMessage> getIntroductionMessages(ContactId contactId)
Collection<PrivateMessageHeader> getIntroductionMessages(ContactId contactId)
throws DbException;
}

View File

@@ -1,28 +0,0 @@
package org.briarproject.briar.api.introduction;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class IntroductionMessage extends PrivateMessageHeader {
private final SessionId sessionId;
IntroductionMessage(SessionId sessionId, MessageId messageId,
GroupId groupId, long time, boolean local, boolean sent,
boolean seen, boolean read) {
super(messageId, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
}
public SessionId getSessionId() {
return sessionId;
}
}

View File

@@ -1,48 +1,24 @@
package org.briarproject.briar.api.introduction;
import org.briarproject.bramble.api.identity.Author;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateRequest;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class IntroductionRequest extends IntroductionMessage {
public class IntroductionRequest extends PrivateRequest<Introduction> {
private final Author introducedAuthor;
@Nullable
private final String message;
private final boolean answered, exists;
public IntroductionRequest(SessionId sessionId, MessageId messageId,
GroupId groupId, long time, boolean local, boolean sent,
boolean seen, boolean read, Author introducedAuthor,
public IntroductionRequest(MessageId messageId, GroupId groupId,
long time, boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, Introduction introduction,
@Nullable String message, boolean answered, boolean exists) {
super(sessionId, messageId, groupId, time, local, sent, seen, read);
this.introducedAuthor = introducedAuthor;
this.message = message;
this.answered = answered;
this.exists = exists;
super(messageId, groupId, time, local, sent, seen, read, sessionId,
introduction, message, answered, exists);
}
public String getName() {
return introducedAuthor.getName();
}
@Nullable
public String getMessage() {
return message;
}
public boolean wasAnswered() {
return answered;
}
public boolean contactExists() {
return exists;
}
}

View File

@@ -4,6 +4,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@@ -11,8 +12,9 @@ import static org.briarproject.briar.api.introduction.Role.INTRODUCER;
@Immutable
@NotNullByDefault
public class IntroductionResponse extends IntroductionMessage {
public class IntroductionResponse extends PrivateMessageHeader {
private final SessionId sessionId;
private final String name;
private final Role role;
private final boolean accepted;
@@ -20,12 +22,17 @@ public class IntroductionResponse extends IntroductionMessage {
public IntroductionResponse(SessionId sessionId, MessageId messageId,
GroupId groupId, Role role, long time, boolean local, boolean sent,
boolean seen, boolean read, String name, boolean accepted) {
super(sessionId, messageId, groupId, time, local, sent, seen, read);
super(messageId, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.name = name;
this.role = role;
this.accepted = accepted;
}
public SessionId getSessionId() {
return sessionId;
}
public String getName() {
return name;
}

View File

@@ -0,0 +1,10 @@
package org.briarproject.briar.api.messaging;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
@NotNullByDefault
public interface Nameable {
String getName();
}

View File

@@ -0,0 +1,57 @@
package org.briarproject.briar.api.messaging;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class PrivateRequest<O extends Nameable> extends PrivateMessageHeader {
private final SessionId sessionId;
private final O object;
@Nullable
private final String message;
private final boolean answered, exists;
public PrivateRequest(MessageId messageId, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, O object, @Nullable String message,
boolean answered, boolean exists) {
super(messageId, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.object = object;
this.message = message;
this.answered = answered;
this.exists = exists;
}
public SessionId getSessionId() {
return sessionId;
}
public O getObject() {
return object;
}
public String getName() {
return object.getName();
}
@Nullable
public String getMessage() {
return message;
}
public boolean wasAnswered() {
return answered;
}
public boolean doesExist() {
return exists;
}
}

View File

@@ -9,8 +9,8 @@ import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.client.ProtocolStateException;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.sharing.InvitationMessage;
import java.util.Collection;
@@ -77,7 +77,7 @@ public interface GroupInvitationManager extends ConversationClient {
* Returns all private group invitation messages related to the given
* contact.
*/
Collection<InvitationMessage> getInvitationMessages(ContactId c)
Collection<PrivateMessageHeader> getInvitationMessages(ContactId c)
throws DbException;
/**

View File

@@ -1,23 +1,22 @@
package org.briarproject.briar.api.privategroup.invitation;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.sharing.InvitationRequest;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class GroupInvitationRequest extends InvitationRequest<PrivateGroup> {
public class GroupInvitationRequest extends PrivateRequest<PrivateGroup> {
public GroupInvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, PrivateGroup shareable, ContactId contactId,
SessionId sessionId, PrivateGroup shareable,
@Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId, shareable,
message, available, canBeOpened);

View File

@@ -1,28 +0,0 @@
package org.briarproject.briar.api.sharing;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class InvitationMessage extends PrivateMessageHeader {
private final SessionId sessionId;
public InvitationMessage(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId) {
super(id, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
}
public SessionId getSessionId() {
return sessionId;
}
}

View File

@@ -1,49 +0,0 @@
package org.briarproject.briar.api.sharing;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class InvitationRequest<S extends Shareable>
extends InvitationMessage {
private final S shareable;
@Nullable
private final String message;
private final boolean available, canBeOpened;
public InvitationRequest(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, S shareable,
@Nullable String message, boolean available, boolean canBeOpened) {
super(id, groupId, time, local, sent, seen, read, sessionId);
this.shareable = shareable;
this.message = message;
this.available = available;
this.canBeOpened = canBeOpened;
}
@Nullable
public String getMessage() {
return message;
}
public boolean isAvailable() {
return available;
}
public boolean canBeOpened() {
return canBeOpened;
}
public S getShareable() {
return shareable;
}
}

View File

@@ -4,13 +4,15 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class InvitationResponse extends InvitationMessage {
public abstract class InvitationResponse extends PrivateMessageHeader {
private final SessionId sessionId;
private final GroupId shareableId;
private final boolean accept;
@@ -18,11 +20,16 @@ public abstract class InvitationResponse extends InvitationMessage {
long time, boolean local, boolean sent, boolean seen,
boolean read, SessionId sessionId, GroupId shareableId,
boolean accept) {
super(id, groupId, time, local, sent, seen, read, sessionId);
super(id, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.shareableId = shareableId;
this.accept = accept;
}
public SessionId getSessionId() {
return sessionId;
}
public boolean wasAccepted() {
return accept;
}

View File

@@ -2,12 +2,11 @@ package org.briarproject.briar.api.sharing;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.messaging.Nameable;
@NotNullByDefault
public interface Shareable {
public interface Shareable extends Nameable {
GroupId getId();
String getName();
}

View File

@@ -7,6 +7,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.ConversationManager.ConversationClient;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import java.util.Collection;
@@ -39,7 +40,7 @@ public interface SharingManager<S extends Shareable>
* Returns all group sharing messages sent by the Contact
* identified by contactId.
*/
Collection<InvitationMessage> getInvitationMessages(
Collection<PrivateMessageHeader> getInvitationMessages(
ContactId contactId) throws DbException;
/**

View File

@@ -3,7 +3,7 @@ package org.briarproject.briar.api.sharing.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.sharing.InvitationRequest;
import org.briarproject.briar.api.messaging.PrivateRequest;
import org.briarproject.briar.api.sharing.Shareable;
import javax.annotation.concurrent.Immutable;
@@ -15,10 +15,10 @@ public abstract class InvitationRequestReceivedEvent<S extends Shareable>
private final S shareable;
private final ContactId contactId;
private final InvitationRequest request;
private final PrivateRequest<S> request;
protected InvitationRequestReceivedEvent(S shareable, ContactId contactId,
InvitationRequest request) {
PrivateRequest<S> request) {
this.shareable = shareable;
this.contactId = contactId;
this.request = request;
@@ -28,7 +28,7 @@ public abstract class InvitationRequestReceivedEvent<S extends Shareable>
return contactId;
}
public InvitationRequest getRequest() {
public PrivateRequest<S> getRequest() {
return request;
}