X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/d49d536c32f5d44eaf50f3ac20dfd8e72e94c985..a634b46eb23a91adcaebd8bb4d15fe4d6b67fa52:/src/main/java/org/asamk/Signal.java diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index f8b353c7..a93d6d86 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -1,33 +1,33 @@ package org.asamk; -import org.asamk.signal.AttachmentInvalidException; -import org.asamk.signal.GroupNotFoundException; -import org.freedesktop.dbus.DBusInterface; -import org.freedesktop.dbus.DBusSignal; import org.freedesktop.dbus.exceptions.DBusException; -import org.whispersystems.signalservice.api.push.exceptions.EncapsulatedExceptions; -import org.whispersystems.signalservice.api.util.InvalidNumberException; +import org.freedesktop.dbus.exceptions.DBusExecutionException; +import org.freedesktop.dbus.interfaces.DBusInterface; +import org.freedesktop.dbus.messages.DBusSignal; -import java.io.IOException; import java.util.List; +/** + * DBus interface for the org.asamk.Signal service. + * Including emitted Signals and returned Errors. + */ public interface Signal extends DBusInterface { - void sendMessage(String message, List attachments, String recipient) throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException; + long sendMessage(String message, List attachments, String recipient) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber; - void sendMessage(String message, List attachments, List recipients) throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException; + long sendMessage(String message, List attachments, List recipients) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.UnregisteredUser, Error.UntrustedIdentity; - void sendEndSessionMessage(List recipients) throws IOException, EncapsulatedExceptions, InvalidNumberException; + void sendEndSessionMessage(List recipients) throws Error.Failure, Error.InvalidNumber, Error.UnregisteredUser, Error.UntrustedIdentity; - void sendGroupMessage(String message, List attachments, byte[] groupId) throws EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException, IOException; + long sendGroupMessage(String message, List attachments, byte[] groupId) throws Error.GroupNotFound, Error.Failure, Error.AttachmentInvalid, Error.UnregisteredUser, Error.UntrustedIdentity; - String getContactName(String number) throws InvalidNumberException; + String getContactName(String number) throws Error.InvalidNumber; - void setContactName(String number, String name) throws InvalidNumberException; + void setContactName(String number, String name) throws Error.InvalidNumber; - void setContactBlocked(String number, boolean blocked) throws InvalidNumberException; + void setContactBlocked(String number, boolean blocked) throws Error.InvalidNumber; - void setGroupBlocked(byte[] groupId, boolean blocked) throws GroupNotFoundException; + void setGroupBlocked(byte[] groupId, boolean blocked) throws Error.GroupNotFound; List getGroupIds(); @@ -35,17 +35,17 @@ public interface Signal extends DBusInterface { List getGroupMembers(byte[] groupId); - byte[] updateGroup(byte[] groupId, String name, List members, String avatar) throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException, InvalidNumberException; + byte[] updateGroup(byte[] groupId, String name, List members, String avatar) throws Error.AttachmentInvalid, Error.Failure, Error.InvalidNumber, Error.GroupNotFound, Error.UnregisteredUser, Error.UntrustedIdentity; boolean isRegistered(); class MessageReceived extends DBusSignal { - private long timestamp; - private String sender; - private byte[] groupId; - private String message; - private List attachments; + private final long timestamp; + private final String sender; + private final byte[] groupId; + private final String message; + private final List attachments; public MessageReceived(String objectpath, long timestamp, String sender, byte[] groupId, String message, List attachments) throws DBusException { super(objectpath, timestamp, sender, groupId, message, attachments); @@ -79,8 +79,8 @@ public interface Signal extends DBusInterface { class ReceiptReceived extends DBusSignal { - private long timestamp; - private String sender; + private final long timestamp; + private final String sender; public ReceiptReceived(String objectpath, long timestamp, String sender) throws DBusException { super(objectpath, timestamp, sender); @@ -98,12 +98,13 @@ public interface Signal extends DBusInterface { } class SyncMessageReceived extends DBusSignal { - private long timestamp; - private String source; - private String destination; - private byte[] groupId; - private String message; - private List attachments; + + private final long timestamp; + private final String source; + private final String destination; + private final byte[] groupId; + private final String message; + private final List attachments; public SyncMessageReceived(String objectpath, long timestamp, String source, String destination, byte[] groupId, String message, List attachments) throws DBusException { super(objectpath, timestamp, source, destination, groupId, message, attachments); @@ -139,4 +140,49 @@ public interface Signal extends DBusInterface { return attachments; } } + + interface Error { + + class AttachmentInvalid extends DBusExecutionException { + + public AttachmentInvalid(final String message) { + super(message); + } + } + + class Failure extends DBusExecutionException { + + public Failure(final String message) { + super(message); + } + } + + class GroupNotFound extends DBusExecutionException { + + public GroupNotFound(final String message) { + super(message); + } + } + + class InvalidNumber extends DBusExecutionException { + + public InvalidNumber(final String message) { + super(message); + } + } + + class UnregisteredUser extends DBusExecutionException { + + public UnregisteredUser(final String message) { + super(message); + } + } + + class UntrustedIdentity extends DBusExecutionException { + + public UntrustedIdentity(final String message) { + super(message); + } + } + } }