Initial commit (working)
[fanfix.git] / src / be / nikiroo / fanfix / data / Paragraph.java
diff --git a/src/be/nikiroo/fanfix/data/Paragraph.java b/src/be/nikiroo/fanfix/data/Paragraph.java
new file mode 100644 (file)
index 0000000..feb949c
--- /dev/null
@@ -0,0 +1,104 @@
+package be.nikiroo.fanfix.data;
+
+import java.net.URL;
+
+/**
+ * A paragraph in a chapter of the story.
+ * 
+ * @author niki
+ */
+public class Paragraph {
+       /**
+        * A paragraph type, that will dictate how the paragraph will be handled.
+        * 
+        * @author niki
+        */
+       public enum ParagraphType {
+               /** Normal paragraph (text) */
+               NORMAL,
+               /** Blank line */
+               BLANK,
+               /** A Break paragraph, i.e.: HR (Horizontal Line) or '* * *' or whatever */
+               BREAK,
+               /** Quotation (dialogue) */
+               QUOTE,
+               /** An image (no text) */
+               IMAGE,
+       }
+
+       private ParagraphType type;
+       private String content;
+
+       /**
+        * Create a new {@link Paragraph} with the given values.
+        * 
+        * @param type
+        *            the {@link ParagraphType}
+        * @param content
+        *            the content of this paragraph
+        */
+       public Paragraph(ParagraphType type, String content) {
+               this.type = type;
+               this.content = content;
+       }
+
+       /**
+        * Create a new {@link Paragraph} with the given image.
+        * 
+        * @param support
+        *            the support that will be used to fetch the image via
+        *            {@link Paragraph#getContentImage()}.
+        * @param content
+        *            the content image of this paragraph
+        */
+       public Paragraph(URL imageUrl) {
+               this.type = ParagraphType.IMAGE;
+               this.content = imageUrl.toString();
+       }
+
+       /**
+        * The {@link ParagraphType}.
+        * 
+        * @return the type
+        */
+       public ParagraphType getType() {
+               return type;
+       }
+
+       /**
+        * The {@link ParagraphType}.
+        * 
+        * @param type
+        *            the type to set
+        */
+       public void setType(ParagraphType type) {
+               this.type = type;
+       }
+
+       /**
+        * The content of this {@link Paragraph}.
+        * 
+        * @return the content
+        */
+       public String getContent() {
+               return content;
+       }
+
+       /**
+        * The content of this {@link Paragraph}.
+        * 
+        * @param content
+        *            the content to set
+        */
+       public void setContent(String content) {
+               this.content = content;
+       }
+
+       /**
+        * Display a DEBUG {@link String} representation of this object.
+        */
+       @Override
+       public String toString() {
+               return String.format("%s: [%s]", "" + type, "" + content);
+       }
+}