X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2FMetadata.java;h=61c01003b3a360a6c503b6a3279b40c126db20af;hb=0cb1a7ef6d41b123f6d0b7db3f17b3d21760c8c8;hp=9c3f85e5052bdfbb7d3c76c4631df90652a723dd;hpb=e0b5cb1f73788a84a7935bec75332fb1457c3503;p=sonitus.git diff --git a/src/main/java/net/pterodactylus/sonitus/data/Metadata.java b/src/main/java/net/pterodactylus/sonitus/data/Metadata.java index 9c3f85e..61c0100 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/Metadata.java +++ b/src/main/java/net/pterodactylus/sonitus/data/Metadata.java @@ -30,6 +30,9 @@ import com.google.common.base.Optional; */ public class Metadata { + /** Marker for unknown metadata. */ + public static final Metadata UNKNOWN = new Metadata(); + /** The format metadata. */ private final FormatMetadata formatMetadata; @@ -202,6 +205,37 @@ public class Metadata { return new Metadata(formatMetadata, contentMetadata.title(title)); } + /** + * Returns the comment of the content, if any. + * + * @return The comment of the content + */ + public Optional comment() { + return contentMetadata.comment(); + } + + /** + * Returns new metadata with the same attributes as this metadata but with the + * comment changed to the given comment. + * + * @param comment + * The new comment + * @return The new metadata + */ + public Metadata comment(String comment) { + return new Metadata(formatMetadata, contentMetadata.comment(comment)); + } + + /** + * Returns the title with the comment appended in parantheses, if a comment has + * been set. + * + * @return The title with the comment appended + */ + public String fullTitle() { + return String.format("%s%s", title(), comment().isPresent() ? String.format(" (%s)", comment().get()) : ""); + } + // // OBJECT METHODS // @@ -222,7 +256,7 @@ public class Metadata { @Override public String toString() { - return String.format("%s: %s", formatMetadata, contentMetadata); + return String.format("%s%s%s", formatMetadata, contentMetadata.toString().length() > 0 ? ": " : "", contentMetadata); } }