2 * Sone - TemporaryImage.java - Copyright © 2011–2013 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 static com.google.common.base.Preconditions.checkNotNull;
21 import static com.google.common.base.Preconditions.checkState;
23 import java.util.UUID;
26 * A temporary image stores an uploaded image in memory until it has been
27 * inserted into Freenet and is subsequently loaded from there.
29 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
31 public class TemporaryImage {
33 /** The ID of the temporary image. */
34 private final String id;
36 /** The MIME type of the image. */
37 private String mimeType;
39 /** The encoded image data. */
40 private byte[] imageData;
43 * Creates a new temporary image with a random ID.
45 public TemporaryImage() {
46 this(UUID.randomUUID().toString());
50 * Creates a new temporary image.
53 * The ID of the temporary image
55 public TemporaryImage(String id) {
60 * Returns the ID of the temporary image.
62 * @return The ID of the temporary image
64 public String getId() {
69 * Returns the MIME type of the image.
71 * @return The MIME type of the image
73 public String getMimeType() {
78 * Sets the MIME type of the image. The MIME type can only be set once and
79 * it must not be {@code null}.
82 * The MIME type of the image
83 * @return This temporary image
85 public TemporaryImage setMimeType(String mimeType) {
86 checkNotNull(mimeType, "mimeType must not be null");
87 checkState(this.mimeType == null, "mime type must not already be set");
88 this.mimeType = mimeType;
93 * Returns the encoded image data.
95 * @return The encoded image data
97 public byte[] getImageData() {
102 * Sets the encoded image data. The encoded image data can only be set once
103 * and it must not be {@code null}.
106 * The encoded image data
107 * @return This temporary image
109 public TemporaryImage setImageData(byte[] imageData) {
110 checkNotNull(imageData, "imageData must not be null");
111 checkState(this.imageData == null, "image data must not already be set");
112 this.imageData = imageData;