2 * Sone - TemporaryImage.java - Copyright © 2011–2012 David Roden
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package net.pterodactylus.sone.data;
20 import java.util.UUID;
22 import net.pterodactylus.util.validation.Validation;
25 * A temporary image stores an uploaded image in memory until it has been
26 * inserted into Freenet and is subsequently loaded from there.
28 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
30 public class TemporaryImage {
32 /** The ID of the temporary image. */
33 private final String id;
35 /** The MIME type of the image. */
36 private String mimeType;
38 /** The encoded image data. */
39 private byte[] imageData;
42 * Creates a new temporary image with a random ID.
44 public TemporaryImage() {
45 this(UUID.randomUUID().toString());
49 * Creates a new temporary image.
52 * The ID of the temporary image
54 public TemporaryImage(String id) {
59 * Returns the ID of the temporary image.
61 * @return The ID of the temporary image
63 public String getId() {
68 * Returns the MIME type of the image.
70 * @return The MIME type of the image
72 public String getMimeType() {
77 * Sets the MIME type of the image. The MIME type can only be set once and
78 * it must not be {@code null}.
81 * The MIME type of the image
82 * @return This temporary image
84 public TemporaryImage setMimeType(String mimeType) {
85 Validation.begin().isNotNull("MIME Type", mimeType).isNull("Previous MIME Type", this.mimeType).check();
86 this.mimeType = mimeType;
91 * Returns the encoded image data.
93 * @return The encoded image data
95 public byte[] getImageData() {
100 * Sets the encoded image data. The encoded image data can only be set once
101 * and it must not be {@code null}.
104 * The encoded image data
105 * @return This temporary image
107 public TemporaryImage setImageData(byte[] imageData) {
108 Validation.begin().isNotNull("Image Data", imageData).isNull("Previous Image Data", this.imageData).check();
109 this.imageData = imageData;