public void init() throws CommandException {
var outputType = ns.<OutputType>get("output");
var outputWriter = outputType == OutputType.JSON
- ? new JsonWriter(System.out)
+ ? new JsonWriterImpl(System.out)
: new PlainTextWriterImpl(System.out);
var commandKey = ns.getString("command");
package org.asamk.signal;
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
+public interface JsonWriter extends OutputWriter {
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.nio.charset.StandardCharsets;
-
-public class JsonWriter implements OutputWriter {
-
- private final Writer writer;
- private final ObjectMapper objectMapper;
-
- public JsonWriter(final OutputStream outputStream) {
- this.writer = new BufferedWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8));
-
- objectMapper = new ObjectMapper();
- objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.PUBLIC_ONLY);
- objectMapper.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);
- }
-
- public void write(final Object object) {
- try {
- try {
- objectMapper.writeValue(writer, object);
- } catch (JsonProcessingException e) {
- // Some issue with json serialization, probably caused by a bug
- throw new AssertionError(e);
- }
- writer.write(System.lineSeparator());
- writer.flush();
- } catch (IOException e) {
- throw new AssertionError(e);
- }
- }
+ void write(final Object object);
}
--- /dev/null
+package org.asamk.signal;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.StandardCharsets;
+
+public class JsonWriterImpl implements JsonWriter {
+
+ private final Writer writer;
+ private final ObjectMapper objectMapper;
+
+ public JsonWriterImpl(final OutputStream outputStream) {
+ this.writer = new BufferedWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8));
+
+ objectMapper = new ObjectMapper();
+ objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.PUBLIC_ONLY);
+ objectMapper.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);
+ }
+
+ public synchronized void write(final Object object) {
+ try {
+ try {
+ objectMapper.writeValue(writer, object);
+ } catch (JsonProcessingException e) {
+ // Some issue with json serialization, probably caused by a bug
+ throw new AssertionError(e);
+ }
+ writer.write(System.lineSeparator());
+ writer.flush();
+ } catch (IOException e) {
+ throw new AssertionError(e);
+ }
+ }
+}
import org.asamk.signal.JsonWriter;
import org.asamk.signal.OutputType;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.IOErrorException;
import org.asamk.signal.manager.Manager;
jsonWriter.write(jsonUserStatuses);
} else {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
for (var entry : registered.entrySet()) {
writer.println("{}: {}", entry.getKey(), entry.getValue());
import net.sourceforge.argparse4j.inf.Subparser;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.IOErrorException;
import org.asamk.signal.commands.exceptions.UnexpectedErrorException;
}
try {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
final var results = m.joinGroup(linkUrl);
var newGroupId = results.first();
import net.sourceforge.argparse4j.inf.Subparser;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.IOErrorException;
import org.asamk.signal.commands.exceptions.UserErrorException;
@Override
public void handleCommand(final Namespace ns, final ProvisioningManager m) throws CommandException {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
var deviceName = ns.getString("name");
if (deviceName == null) {
import net.sourceforge.argparse4j.inf.Subparser;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.manager.Manager;
import static org.asamk.signal.util.Util.getLegacyIdentifier;
@Override
public void handleCommand(final Namespace ns, final Manager m) {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
var contacts = m.getContacts();
for (var c : contacts) {
import net.sourceforge.argparse4j.inf.Subparser;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.IOErrorException;
import org.asamk.signal.manager.Manager;
@Override
public void handleCommand(final Namespace ns, final Manager m) throws CommandException {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
List<Device> devices;
try {
import org.asamk.signal.OutputWriter;
import org.asamk.signal.PlainTextWriter;
-import org.asamk.signal.PlainTextWriterImpl;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.UserErrorException;
import org.asamk.signal.manager.Manager;
@Override
public void handleCommand(final Namespace ns, final Manager m) throws CommandException {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
var number = ns.getString("number");
import net.sourceforge.argparse4j.inf.Subparser;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.IOErrorException;
import org.asamk.signal.commands.exceptions.UserErrorException;
@Override
public void handleCommand(final Namespace ns, final Manager m) throws CommandException {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
final GroupId groupId;
try {
import org.asamk.signal.OutputType;
import org.asamk.signal.OutputWriter;
import org.asamk.signal.PlainTextWriter;
-import org.asamk.signal.PlainTextWriterImpl;
import org.asamk.signal.ReceiveMessageHandler;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.IOErrorException;
jsonWriter.write(object);
});
} else {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
dbusconnection.addSigHandler(Signal.MessageReceived.class, signal, messageReceived -> {
writer.println("Envelope from: {}", messageReceived.getSender());
import org.asamk.Signal;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.UnexpectedErrorException;
import org.asamk.signal.commands.exceptions.UserErrorException;
final long targetTimestamp = ns.getLong("target-timestamp");
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
byte[] groupId = null;
if (groupIdString != null) {
import org.asamk.Signal;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.UnexpectedErrorException;
import org.asamk.signal.commands.exceptions.UserErrorException;
final var targetAuthor = ns.getString("target-author");
final long targetTimestamp = ns.getLong("target-timestamp");
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
byte[] groupId = null;
if (groupIdString != null) {
m.unregister();
}
} catch (IOException e) {
- e.printStackTrace();
throw new IOErrorException("Unregister error: " + e.getMessage());
}
}
import org.asamk.signal.GroupLinkState;
import org.asamk.signal.GroupPermission;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.UnexpectedErrorException;
import org.asamk.signal.commands.exceptions.UserErrorException;
@Override
public void handleCommand(final Namespace ns, final Manager m) throws CommandException {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
GroupId groupId = null;
final var groupIdString = ns.getString("group");
if (groupIdString != null) {
@Override
public void handleCommand(final Namespace ns, final Signal signal) throws CommandException {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
byte[] groupId = null;
if (ns.getString("group") != null) {
try {
import net.sourceforge.argparse4j.inf.Subparser;
import org.asamk.signal.OutputWriter;
-import org.asamk.signal.PlainTextWriterImpl;
+import org.asamk.signal.PlainTextWriter;
import org.asamk.signal.commands.exceptions.CommandException;
import org.asamk.signal.commands.exceptions.IOErrorException;
import org.asamk.signal.commands.exceptions.UserErrorException;
@Override
public void handleCommand(final Namespace ns, final Manager m) throws CommandException {
- final var writer = (PlainTextWriterImpl) outputWriter;
+ final var writer = (PlainTextWriter) outputWriter;
var path = new File(ns.getString("path"));
try {