in dbus-java/src/main/java/org/freedesktop/dbus/errors/Error.java [42:102]
public Error(String source, String dest, String errorName, long replyserial, String sig, Object... args)
throws DBusException {
super(DBusConnection.getEndianness(), Message.MessageType.ERROR, (byte) 0);
if (null == errorName) {
throw new MessageFormatException("Must specify error name to Errors.");
}
getHeaders().put(Message.HeaderField.REPLY_SERIAL, replyserial);
getHeaders().put(Message.HeaderField.ERROR_NAME, errorName);
List<Object> hargs = new ArrayList<>();
hargs.add(new Object[] {
Message.HeaderField.ERROR_NAME, new Object[] {
ArgumentType.STRING_STRING, errorName
}
});
hargs.add(new Object[] {
Message.HeaderField.REPLY_SERIAL, new Object[] {
ArgumentType.UINT32_STRING, replyserial
}
});
if (null != source) {
getHeaders().put(Message.HeaderField.SENDER, source);
hargs.add(new Object[] {
Message.HeaderField.SENDER, new Object[] {
ArgumentType.STRING_STRING, source
}
});
}
if (null != dest) {
getHeaders().put(Message.HeaderField.DESTINATION, dest);
hargs.add(new Object[] {
Message.HeaderField.DESTINATION, new Object[] {
ArgumentType.STRING_STRING, dest
}
});
}
if (null != sig) {
hargs.add(new Object[] {
Message.HeaderField.SIGNATURE, new Object[] {
ArgumentType.SIGNATURE_STRING, sig
}
});
getHeaders().put(Message.HeaderField.SIGNATURE, sig);
setArgs(args);
}
byte[] blen = new byte[4];
appendBytes(blen);
append("ua(yv)", getSerial(), hargs.toArray());
pad((byte) 8);
long c = getByteCounter();
if (null != sig) {
append(sig, args);
}
marshallint(getByteCounter() - c, blen, 0, 4);
}