package be.nikiroo.fanfix.data;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
*
* @author niki
*/
-public class Chapter implements Iterable<Paragraph> {
+public class Chapter implements Iterable<Paragraph>, Cloneable, Serializable {
+ private static final long serialVersionUID = 1L;
+
private String name;
private int number;
private List<Paragraph> paragraphs = new ArrayList<Paragraph>();
/**
* Empty constructor, not to use.
*/
+ @SuppressWarnings("unused")
private Chapter() {
// for serialisation purposes
}
/**
* Get an iterator on the {@link Paragraph}s.
*/
+ @Override
public Iterator<Paragraph> iterator() {
return paragraphs == null ? empty.iterator() : paragraphs.iterator();
}
/**
- * The number of words in this {@link Chapter}.
+ * The number of words (or images) in this {@link Chapter}.
*
* @return the number of words
*/
}
/**
- * The number of words in this {@link Chapter}.
+ * The number of words (or images) in this {@link Chapter}.
*
* @param words
* the number of words to set
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<Paragraph>();
+ for (Paragraph para : paragraphs) {
+ chap.paragraphs.add(para.clone());
+ }
+ }
+
+ return chap;
+ }
}