Initial commit (working)
[fanfix.git] / src / be / nikiroo / fanfix / data / Chapter.java
diff --git a/src/be/nikiroo/fanfix/data/Chapter.java b/src/be/nikiroo/fanfix/data/Chapter.java
new file mode 100644 (file)
index 0000000..5516063
--- /dev/null
@@ -0,0 +1,102 @@
+package be.nikiroo.fanfix.data;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * A chapter in the story (or the resume/description).
+ * 
+ * @author niki
+ */
+public class Chapter implements Iterable<Paragraph> {
+       private String name;
+       private int number;
+       private List<Paragraph> paragraphs = new ArrayList<Paragraph>();
+       private List<Paragraph> empty = new ArrayList<Paragraph>();
+
+       /**
+        * Create a new {@link Chapter} with the given information.
+        * 
+        * @param number
+        *            the chapter number, or 0 for the description/resume.
+        * @param name
+        *            the chapter name
+        */
+       public Chapter(int number, String name) {
+               this.number = number;
+               this.name = name;
+       }
+
+       /**
+        * The chapter name.
+        * 
+        * @return the name
+        */
+       public String getName() {
+               return name;
+       }
+
+       /**
+        * The chapter name.
+        * 
+        * @param name
+        *            the name to set
+        */
+       public void setName(String name) {
+               this.name = name;
+       }
+
+       /**
+        * The chapter number, or 0 for the description/resume.
+        * 
+        * @return the number
+        */
+       public int getNumber() {
+               return number;
+       }
+
+       /**
+        * The chapter number, or 0 for the description/resume.
+        * 
+        * @param number
+        *            the number to set
+        */
+       public void setNumber(int number) {
+               this.number = number;
+       }
+
+       /**
+        * The included paragraphs.
+        * 
+        * @return the paragraphs
+        */
+       public List<Paragraph> getParagraphs() {
+               return paragraphs;
+       }
+
+       /**
+        * The included paragraphs.
+        * 
+        * @param paragraphes
+        *            the paragraphs to set
+        */
+       public void setParagraphs(List<Paragraph> paragraphs) {
+               this.paragraphs = paragraphs;
+       }
+
+       /**
+        * Get an iterator on the {@link Paragraph}s.
+        */
+       public Iterator<Paragraph> iterator() {
+               return paragraphs == null ? empty.iterator() : paragraphs.iterator();
+       }
+
+       /**
+        * Display a DEBUG {@link String} representation of this object.
+        */
+       @Override
+       public String toString() {
+               return "Chapter " + number + ": " + name;
+       }
+}