X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fdata%2FStory.java;h=f4b653a273fba147a7e8049e66db18af56130bf5;hb=9fe3f17729759e933d7687cc2838f7255f2c9283;hp=7ebfbc598d945e1502352872daa8b0e55dbbbaa0;hpb=211f7ddb50f68aa8a999023ef6d63d5756bdace6;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/data/Story.java b/src/be/nikiroo/fanfix/data/Story.java index 7ebfbc5..f4b653a 100644 --- a/src/be/nikiroo/fanfix/data/Story.java +++ b/src/be/nikiroo/fanfix/data/Story.java @@ -9,7 +9,7 @@ import java.util.List; * * @author niki */ -public class Story implements Iterable { +public class Story implements Iterable, Cloneable { private MetaData meta; private List chapters = new ArrayList(); private List empty = new ArrayList(); @@ -72,13 +72,13 @@ public class Story implements Iterable { 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 { 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(); + for (Chapter chap : chapters) { + story.chapters.add(chap.clone()); + } + } + + return story; } }