2 * Sone - TemporaryImage.java - Copyright © 2011–2019 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 public class TemporaryImage {
31 /** The ID of the temporary image. */
32 private final String id;
34 /** The MIME type of the image. */
35 private String mimeType;
37 /** The encoded image data. */
38 private byte[] imageData;
41 * Creates a new temporary image with a random ID.
43 public TemporaryImage() {
44 this(UUID.randomUUID().toString());
48 * Creates a new temporary image.
51 * The ID of the temporary image
53 public TemporaryImage(String id) {
58 * Returns the ID of the temporary image.
60 * @return The ID of the temporary image
62 public String getId() {
67 * Returns the MIME type of the image.
69 * @return The MIME type of the image
71 public String getMimeType() {
76 * Sets the MIME type of the image. The MIME type can only be set once and
77 * it must not be {@code null}.
80 * The MIME type of the image
81 * @return This temporary image
83 public TemporaryImage setMimeType(String mimeType) {
84 checkNotNull(mimeType, "mimeType must not be null");
85 checkState(this.mimeType == null, "mime type must not already be set");
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 checkNotNull(imageData, "imageData must not be null");
109 checkState(this.imageData == null, "image data must not already be set");
110 this.imageData = imageData;