X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fdata%2FChapter.java;h=873dcb801f89b03f5ca648bd9c2f67f84ab761f6;hb=39cd9738bfcdafaf8806d5007e443e572f8994c0;hp=551606348843446c00ddc59fc53827e7a3e35aa9;hpb=08fe2e33007063e30fe22dc1d290f8afaa18eb1d;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/data/Chapter.java b/src/be/nikiroo/fanfix/data/Chapter.java index 5516063..873dcb8 100644 --- a/src/be/nikiroo/fanfix/data/Chapter.java +++ b/src/be/nikiroo/fanfix/data/Chapter.java @@ -9,11 +9,20 @@ import java.util.List; * * @author niki */ -public class Chapter implements Iterable { +public class Chapter implements Iterable, Cloneable { private String name; private int number; private List paragraphs = new ArrayList(); private List empty = new ArrayList(); + private long words; + + /** + * Empty constructor, not to use. + */ + @SuppressWarnings("unused") + private Chapter() { + // for serialisation purposes + } /** * Create a new {@link Chapter} with the given information. @@ -78,7 +87,7 @@ public class Chapter implements Iterable { /** * The included paragraphs. * - * @param paragraphes + * @param paragraphs * the paragraphs to set */ public void setParagraphs(List paragraphs) { @@ -88,10 +97,30 @@ public class Chapter implements Iterable { /** * Get an iterator on the {@link Paragraph}s. */ + @Override public Iterator iterator() { return paragraphs == null ? empty.iterator() : paragraphs.iterator(); } + /** + * The number of words (or images) in this {@link Chapter}. + * + * @return the number of words + */ + public long getWords() { + return words; + } + + /** + * The number of words (or images) in this {@link Chapter}. + * + * @param words + * the number of words to set + */ + public void setWords(long words) { + this.words = words; + } + /** * Display a DEBUG {@link String} representation of this object. */ @@ -99,4 +128,24 @@ public class Chapter implements Iterable { public String toString() { return "Chapter " + number + ": " + name; } + + @Override + public Chapter clone() { + Chapter chap = null; + try { + chap = (Chapter) super.clone(); + } catch (CloneNotSupportedException e) { + // Did the clones rebel? + System.err.println(e); + } + + if (paragraphs != null) { + chap.paragraphs = new ArrayList(); + for (Paragraph para : paragraphs) { + chap.paragraphs.add(para.clone()); + } + } + + return chap; + } }