Remove or move java.awt dependencies
[nikiroo-utils.git] / src / be / nikiroo / fanfix / data / Story.java
index cb65119149414a2eef6a9db75aca333950e4e36e..fd4f2a8d15258f1f973b12252089d7bc52b24fda 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>();
@@ -55,6 +55,7 @@ public class Story implements Iterable<Chapter> {
        /**
         * Get an iterator on the {@link Chapter}s.
         */
+       @Override
        public Iterator<Chapter> iterator() {
                return chapters == null ? empty.iterator() : chapters.iterator();
        }
@@ -91,13 +92,50 @@ 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);
        }
+
+       @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;
+       }
 }