X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FAlbumImpl.java;h=f489b0b09548adde4bc654d4a76806e6483b2e39;hp=56c44aa54224abed00fc9ec8bdcfbc72b31a422b;hb=012d7828324b0ebe36376d795aee99a63bdc4884;hpb=f313a48bfc36f9968d18b76436739c093b562b7a diff --git a/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java b/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java index 56c44aa..f489b0b 100644 --- a/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/AlbumImpl.java @@ -17,6 +17,8 @@ package net.pterodactylus.sone.data; +import static com.google.common.base.Optional.absent; +import static com.google.common.base.Optional.fromNullable; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; @@ -242,12 +244,6 @@ public class AlbumImpl implements Album { } @Override - public AlbumImpl setAlbumImage(String id) { - this.albumImage = id; - return this; - } - - @Override public boolean isEmpty() { return albums.isEmpty() && images.isEmpty(); } @@ -280,20 +276,52 @@ public class AlbumImpl implements Album { } @Override - public Album setTitle(String title) { - this.title = checkNotNull(title, "title must not be null"); - return this; - } - - @Override public String getDescription() { return description; } @Override - public AlbumImpl setDescription(String description) { - this.description = checkNotNull(description, "description must not be null"); - return this; + public Modifier modify() throws IllegalStateException { + // TODO: reenable check for local Sones + return new Modifier() { + private Optional title = absent(); + + private Optional description = absent(); + + private Optional albumImage = absent(); + + @Override + public Modifier setTitle(String title) { + this.title = fromNullable(title); + return this; + } + + @Override + public Modifier setDescription(String description) { + this.description = fromNullable(description); + return this; + } + + @Override + public Modifier setAlbumImage(String imageId) { + this.albumImage = fromNullable(imageId); + return this; + } + + @Override + public Album update() throws IllegalStateException { + if (title.isPresent()) { + AlbumImpl.this.title = title.get(); + } + if (description.isPresent()) { + AlbumImpl.this.description = description.get(); + } + if (albumImage.isPresent()) { + AlbumImpl.this.albumImage = albumImage.get(); + } + return AlbumImpl.this; + } + }; } //