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=52cb365c1fe8cb8bbaf5c1eee23ec558983dba51;hpb=0f20c60dd0509d91b488c2c10edf7498feeed560;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 52cb365..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; @@ -59,6 +62,24 @@ public class Metadata { // /** + * Returns the embedded format metadata. + * + * @return The format metadata + */ + public FormatMetadata format() { + return formatMetadata; + } + + /** + * Returns the embedded content metadata. + * + * @return The content metadata + */ + public ContentMetadata content() { + return contentMetadata; + } + + /** * Returns the number of channels of this metadata. * * @return The number of channels of this metadata @@ -184,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 // @@ -204,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); } }