package be.nikiroo.fanfix.data;
-import java.net.URL;
+import java.awt.image.BufferedImage;
/**
* A paragraph in a chapter of the story.
*
* @author niki
*/
-public class Paragraph {
+public class Paragraph implements Cloneable {
/**
* A paragraph type, that will dictate how the paragraph will be handled.
*
private ParagraphType type;
private String content;
+ private BufferedImage contentImage;
private long words;
+ /**
+ * Empty constructor, not to use.
+ */
+ @SuppressWarnings("unused")
+ private Paragraph() {
+ // for serialisation purposes
+ }
+
/**
* 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
+ * @param contentImage
+ * the image
*/
- public Paragraph(URL imageUrl) {
- this(ParagraphType.IMAGE, imageUrl.toString(), 0);
+ public Paragraph(BufferedImage contentImage) {
+ this(ParagraphType.IMAGE, null, 1);
+ this.contentImage = contentImage;
}
/**
* @param content
* the content of this paragraph
* @param words
- * the number of words
+ * the number of words (or images)
*/
public Paragraph(ParagraphType type, String content, long words) {
this.type = type;
}
/**
- * The content of this {@link Paragraph}.
+ * The content of this {@link Paragraph} if it is not an image.
*
* @return the content
*/
}
/**
- * The number of words in this {@link Paragraph}.
+ * The content of this {@link Paragraph} if it is an image.
+ *
+ * @return the content
+ */
+ public BufferedImage getContentImage() {
+ return contentImage;
+ }
+
+ /**
+ * The number of words (or images) in this {@link Paragraph}.
*
* @return the number of words
*/
}
/**
- * The number of words in this {@link Paragraph}.
+ * The number of words (or images) in this {@link Paragraph}.
*
* @param words
* the number of words to set
public String toString() {
return String.format("%s: [%s]", "" + type, "" + content);
}
+
+ @Override
+ public Paragraph clone() {
+ Paragraph para = null;
+ try {
+ para = (Paragraph) super.clone();
+ } catch (CloneNotSupportedException e) {
+ // Did the clones rebel?
+ System.err.println(e);
+ }
+
+ return para;
+ }
}