Fix some warnings
[nikiroo-utils.git] / src / be / nikiroo / fanfix / data / Story.java
index 7ebfbc598d945e1502352872daa8b0e55dbbbaa0..f4b653a273fba147a7e8049e66db18af56130bf5 100644 (file)
@@ -9,7 +9,7 @@ import java.util.List;
  * 
  * @author niki
  */
-public class Story implements Iterable<Chapter> {
+public class Story implements Iterable<Chapter>, Cloneable {
        private MetaData meta;
        private List<Chapter> chapters = new ArrayList<Chapter>();
        private List<Chapter> empty = new ArrayList<Chapter>();
@@ -72,13 +72,13 @@ public class Story implements Iterable<Chapter> {
                        title = meta.getTitle();
                }
 
-               String tags = "";
+               StringBuilder tags = new StringBuilder();
                if (meta != null && meta.getTags() != null) {
                        for (String tag : meta.getTags()) {
-                               if (!tags.isEmpty()) {
-                                       tags += ", ";
+                               if (tags.length() > 0) {
+                                       tags.append(", ");
                                }
-                               tags += tag;
+                               tags.append(tag);
                        }
                }
 
@@ -92,13 +92,51 @@ public class Story implements Iterable<Chapter> {
                        resume += "\n";
                }
 
-               String cover = (meta == null || meta.getCover() == null) ? "none"
-                               : meta.getCover().getWidth() + "x"
-                                               + meta.getCover().getHeight();
+               String cover = "none";
+               if (meta != null && meta.getCover() != null) {
+                       cover = " bytes";
+
+                       int size = meta.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, meta == null ? ""
                                                : meta.getAuthor(), meta == null ? "" : meta.getDate(),
-                               tags, resume, cover);
+                               tags.toString(), resume, cover);
+       }
+
+       @Override
+       public Story clone() {
+               Story story = null;
+               try {
+                       story = (Story) super.clone();
+               } catch (CloneNotSupportedException e) {
+                       // Did the clones rebel?
+                       System.err.println(e);
+               }
+
+               if (meta != null) {
+                       story.meta = meta.clone();
+               }
+
+               if (chapters != null) {
+                       story.chapters = new ArrayList<Chapter>();
+                       for (Chapter chap : chapters) {
+                               story.chapters.add(chap.clone());
+                       }
+               }
+
+               return story;
        }
 }