X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Fsupported%2FBasicSupport.java;h=4337626c7fe60d96914eb9658df2b827823de539;hb=f43598131014c6a1db57e885cc0ac21605633e9d;hp=c35ed86b65b564d4e905c9c635ded5804bd038e4;hpb=7445f8565be9e9237ffb3e16fd4dcb61f8c36cd5;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/supported/BasicSupport.java b/src/be/nikiroo/fanfix/supported/BasicSupport.java index c35ed86..4337626 100644 --- a/src/be/nikiroo/fanfix/supported/BasicSupport.java +++ b/src/be/nikiroo/fanfix/supported/BasicSupport.java @@ -84,7 +84,7 @@ public abstract class BasicSupport { protected abstract String getDesc() throws IOException; /** - * Return the list of chapters (name and resource). * + * Return the list of chapters (name and resource). *
* Can be NULL if this {@link BasicSupport} do no use chapters. * @@ -240,15 +240,6 @@ public abstract class BasicSupport { protected void login() throws IOException { } - /** - * Prepare the support if needed before processing. - * - * @throws IOException - * on I/O error - */ - protected void preprocess() throws IOException { - } - /** * Now that we have processed the {@link Story}, close the resources if any. */ @@ -256,28 +247,6 @@ public abstract class BasicSupport { setCurrentReferer(null); } - /** - * Process the given story resource into a partially filled {@link Story} - * object containing the name and metadata, except for the description. - * - * @return the {@link Story} - * - * @throws IOException - * in case of I/O error - */ - public Story processMeta() throws IOException { - Story story = null; - - preprocess(); - try { - story = processMeta(false, null); - } finally { - close(); - } - - return story; - } - /** * Process the given story resource into a partially filled {@link Story} * object containing the name and metadata. @@ -326,7 +295,7 @@ public abstract class BasicSupport { getDesc(), isHtml(), null)); } - pg.setProgress(100); + pg.done(); return story; } @@ -342,87 +311,95 @@ public abstract class BasicSupport { * @throws IOException * in case of I/O error */ + // ADD final when BasicSupport_Deprecated is gone public Story process(Progress pg) throws IOException { + setCurrentReferer(source); + login(); + sourceNode = loadDocument(source); + + try { + return doProcess(pg); + } finally { + close(); + } + } + + /** + * Actual processing step, without the calls to other methods. + *
+ * Will convert the story resource into a fully filled {@link Story} object.
+ *
+ * @param pg
+ * the optional progress reporter
+ *
+ * @return the {@link Story}, never NULL
+ *
+ * @throws IOException
+ * in case of I/O error
+ */
+ protected Story doProcess(Progress pg) throws IOException {
if (pg == null) {
pg = new Progress();
} else {
pg.setMinMax(0, 100);
}
- setCurrentReferer(source);
- login();
- sourceNode = loadDocument(source);
-
pg.setProgress(1);
- try {
- Progress pgMeta = new Progress();
- pg.addProgress(pgMeta, 10);
- preprocess();
- Story story = processMeta(true, pgMeta);
- if (!pgMeta.isDone()) {
- pgMeta.setProgress(pgMeta.getMax()); // 10%
- }
+ Progress pgMeta = new Progress();
+ pg.addProgress(pgMeta, 10);
+ Story story = processMeta(true, pgMeta);
+ pgMeta.done(); // 10%
+
+ pg.setName("Retrieving " + story.getMeta().getTitle());
+
+ Progress pgGetChapters = new Progress();
+ pg.addProgress(pgGetChapters, 10);
+ story.setChapters(new ArrayList