e621: supports searches
[nikiroo-utils.git] / src / be / nikiroo / fanfix / data / MetaData.java
index 53525fdc58726eee7bd274dc10b5e4adf7568516..4b8e65d7e8f674f8b6a99529d91fcce20ba25c9e 100644 (file)
@@ -384,18 +384,12 @@ public class MetaData implements Cloneable, Comparable<MetaData> {
                        return 1;
                }
 
-               String uuid = getUuid();
-               String oUuid = o.getUuid();
-
-               if (uuid == null) {
-                       uuid = "";
-               }
-
-               if (oUuid == null) {
-                       oUuid = "";
-               }
+               String id = (getUuid() == null ? "" : getUuid())
+                               + (getLuid() == null ? "" : getLuid());
+               String oId = (getUuid() == null ? "" : o.getUuid())
+                               + (o.getLuid() == null ? "" : o.getLuid());
 
-               return uuid.compareTo(oUuid);
+               return id.compareTo(oId);
        }
 
        @Override
@@ -437,4 +431,59 @@ public class MetaData implements Cloneable, Comparable<MetaData> {
 
                return meta;
        }
+
+       /**
+        * Display a DEBUG {@link String} representation of this object.
+        * <p>
+        * This is not efficient, nor intended to be.
+        */
+       @Override
+       public String toString() {
+               String title = "";
+               if (getTitle() != null) {
+                       title = getTitle();
+               }
+
+               StringBuilder tags = new StringBuilder();
+               if (getTags() != null) {
+                       for (String tag : getTags()) {
+                               if (tags.length() > 0) {
+                                       tags.append(", ");
+                               }
+                               tags.append(tag);
+                       }
+               }
+
+               String resume = "";
+               if (getResume() != null) {
+                       for (Paragraph para : getResume()) {
+                               resume += "\n\t";
+                               resume += para.toString().substring(0,
+                                               Math.min(para.toString().length(), 120));
+                       }
+                       resume += "\n";
+               }
+
+               String cover = "none";
+               if (getCover() != null) {
+                       cover = " bytes";
+
+                       int size = getCover().getData().length;
+                       if (size > 1000) {
+                               size /= 1000;
+                               cover = " kb";
+                               if (size > 1000) {
+                                       size /= 1000;
+                                       cover = " mb";
+                               }
+                       }
+
+                       cover = size + cover;
+               }
+
+               return String.format(
+                               "Title: [%s]\nAuthor: [%s]\nDate: [%s]\nTags: [%s]\n"
+                                               + "Resume: [%s]\nCover: [%s]", title, getAuthor(),
+                               getDate(), tags.toString(), resume, cover);
+       }
 }