import java.util.UUID;
+import net.pterodactylus.util.validation.Validation;
+
/**
* Container for image metadata.
*
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
-public class Image {
+public class Image implements Fingerprintable {
/** The ID of the image. */
private final String id;
* The height of the image
*/
public Image(String id, Sone sone, String key, long creationTime, int width, int height) {
+ Validation.begin().isNotNull("Image ID", id).isNotNull("Image Owner", sone).isNotNull("Image Key", key).isGreater("Image Creation Time", creationTime, 0).isGreater("Image Width", width, 0).isGreater("Image Height", height, 0).check();
this.id = id;
this.sone = sone;
this.key = key;
* @return This image
*/
public Image setTitle(String title) {
+ Validation.begin().isNotNull("Image Title", title).check();
this.title = title;
return this;
}
* @return This image
*/
public Image setDescription(String description) {
+ Validation.begin().isNotNull("Image Description", description).check();
this.description = description;
return this;
}
+ //
+ // FINGERPRINTABLE METHODS
+ //
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getFingerprint() {
+ StringBuilder fingerprint = new StringBuilder();
+ fingerprint.append("Image(");
+ fingerprint.append("ID(").append(id).append(')');
+ fingerprint.append("Title(").append(title).append(')');
+ fingerprint.append("Description(").append(description).append(')');
+ fingerprint.append(')');
+ return fingerprint.toString();
+ }
+
}