package com.noticeditorteam.noticeditor.model;
import java.util.Base64;
import java.util.Locale;
public class Attachment {
public static final Attachment EMPTY = new Attachment("", new byte[0]);
private final String name;
private final byte[] data;
private final boolean isImage;
private final String base64data;
public Attachment(String name, byte[] data) {
this.name = name;
this.data = data;
final String nameLowerCase = name.toLowerCase(Locale.ENGLISH);
isImage = nameLowerCase.endsWith(".jpg") ||
nameLowerCase.endsWith(".gif") ||
nameLowerCase.endsWith(".png");
base64data = isImage ? toBase64(data) : "";
}
public String getName() {
return name;
}
public byte[] getData() {
return data;
}
public String getDataAsBase64() {
if (!base64data.isEmpty()) return base64data;
return toBase64(data);
}
private static String toBase64(byte[] data) {
return Base64.getEncoder().encodeToString(data);
}
public boolean isImage() {
return isImage;
}
@Override
public String toString() {
return name;
}
}