/* * Copyright (C) 2015 Actor LLC. <https://actor.im> */ package im.actor.core.entity.content.internal; import java.io.IOException; import im.actor.runtime.bser.BserValues; import im.actor.runtime.bser.BserWriter; public class LocalDocument extends AbsLocalContent { private String fileName; private String fileDescriptor; private int fileSize; private String mimeType; private LocalFastThumb fastThumb; public LocalDocument(String fileName, String fileDescriptor, int fileSize, String mimeType, LocalFastThumb fastThumb) { this.fileName = fileName; this.fileDescriptor = fileDescriptor; this.fileSize = fileSize; this.mimeType = mimeType; this.fastThumb = fastThumb; } public LocalDocument(byte[] data) throws IOException { load(data); } public LocalDocument(BserValues values) throws IOException { parse(values); } public String getFileName() { return fileName; } public String getFileDescriptor() { return fileDescriptor; } public int getFileSize() { return fileSize; } public String getMimeType() { return mimeType; } public LocalFastThumb getFastThumb() { return fastThumb; } @Override public void parse(BserValues values) throws IOException { fileName = values.getString(1); fileDescriptor = values.getString(2); fileSize = values.getInt(3); mimeType = values.getString(4); byte[] rawFT = values.optBytes(5); if (rawFT != null) { fastThumb = new LocalFastThumb(rawFT); } } @Override public void serialize(BserWriter writer) throws IOException { writer.writeString(1, fileName); writer.writeString(2, fileDescriptor); writer.writeInt(3, fileSize); writer.writeString(4, mimeType); if (fastThumb != null) { writer.writeObject(5, fastThumb); } } }