- this.id = String.valueOf(pointer.getId());
- if (pointer.getFileName().isPresent()) {
- this.filename = pointer.getFileName().get();
- }
- if (pointer.getSize().isPresent()) {
- this.size = pointer.getSize().get();
- }
+ final var pointer = attachment.asPointer();
+ final var id = pointer.getRemoteId().toString();
+ final var filename = pointer.getFileName().orNull();
+ final var size = pointer.getSize().transform(Integer::longValue).orNull();
+ return new JsonAttachment(attachment.getContentType(), filename, id, size);
+ } else {
+ final var stream = attachment.asStream();
+ final var filename = stream.getFileName().orNull();
+ final var size = stream.getLength();
+ return new JsonAttachment(attachment.getContentType(), filename, null, size);