*
* @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>();
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;
+ }
}