/* * Sone - TemporaryImage.java - Copyright © 2011 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package net.pterodactylus.sone.data; import java.util.UUID; import net.pterodactylus.util.validation.Validation; /** * A temporary image stores an uploaded image in memory until it has been * inserted into Freenet and is subsequently loaded from there. * * @author David ‘Bombe’ Roden */ public class TemporaryImage { /** The ID of the temporary image. */ private final String id; /** The MIME type of the image. */ private String mimeType; /** The encoded image data. */ private byte[] imageData; /** * Creates a new temporary image with a random ID. */ public TemporaryImage() { this(UUID.randomUUID().toString()); } /** * Creates a new temporary image. * * @param id * The ID of the temporary image */ public TemporaryImage(String id) { this.id = id; } /** * Returns the ID of the temporary image. * * @return The ID of the temporary image */ public String getId() { return id; } /** * Returns the MIME type of the image. * * @return The MIME type of the image */ public String getMimeType() { return mimeType; } /** * Sets the MIME type of the image. The MIME type can only be set once and * it must not be {@code null}. * * @param mimeType * The MIME type of the image * @return This temporary image */ public TemporaryImage setMimeType(String mimeType) { Validation.begin().isNotNull("MIME Type", mimeType).isNull("Previous MIME Type", this.mimeType).check(); this.mimeType = mimeType; return this; } /** * Returns the encoded image data. * * @return The encoded image data */ public byte[] getImageData() { return imageData; } /** * Sets the encoded image data. The encoded image data can only be set once * and it must not be {@code null}. * * @param imageData * The encoded image data * @return This temporary image */ public TemporaryImage setImageData(byte[] imageData) { Validation.begin().isNotNull("Image Data", imageData).isNull("Previous Image Data", this.imageData).check(); this.imageData = imageData; return this; } }