Instance: use getInstance()
[nikiroo-utils.git] / src / be / nikiroo / fanfix / supported / BasicSupport.java
index 388f57222cf41da10d24a354626cb6409195304a..bc91e8b40d0688e96b8ae8698f9e252ae2fe3bec 100644 (file)
@@ -37,13 +37,10 @@ public abstract class BasicSupport {
        private URL source;
        private SupportType type;
        private URL currentReferer; // with only one 'r', as in 'HTTP'...
-
-       /**
-        * The name of this support class.
-        * 
-        * @return the name
-        */
-       protected abstract String getSourceName();
+       
+       static protected BasicSupportHelper bsHelper = new BasicSupportHelper();
+       static protected BasicSupportImages bsImages = new BasicSupportImages();
+       static protected BasicSupportPara bsPara = new BasicSupportPara(new BasicSupportHelper(), new BasicSupportImages());
 
        /**
         * Check if the given resource is supported by this {@link BasicSupport}.
@@ -227,8 +224,7 @@ public abstract class BasicSupport {
         */
        protected Document loadDocument(URL source) throws IOException {
                String url = getCanonicalUrl(source).toString();
-               return DataUtil.load(Instance.getCache().open(source, this, false),
-                               "UTF-8", url.toString());
+               return DataUtil.load(Instance.getInstance().getCache().open(source, this, false), "UTF-8", url.toString());
        }
 
        /**
@@ -281,21 +277,18 @@ public abstract class BasicSupport {
                pg.setProgress(50);
 
                if (meta.getCover() == null) {
-                       meta.setCover(BasicSupportHelper.getDefaultCover(meta.getSubject()));
+                       meta.setCover(bsHelper.getDefaultCover(meta.getSubject()));
                }
 
                pg.setProgress(60);
 
                if (getDesc) {
-                       String descChapterName = Instance.getTrans().getString(
-                                       StringId.DESCRIPTION);
-                       story.getMeta().setResume(
-                                       BasicSupportPara.makeChapter(this, source, 0,
-                                                       descChapterName, //
-                                                       getDesc(), isHtml(), null));
+                       String descChapterName = Instance.getInstance().getTrans().getString(StringId.DESCRIPTION);
+                       story.getMeta().setResume(bsPara.makeChapter(this, source, 0, descChapterName, //
+                                       getDesc(), isHtml(), null));
                }
 
-               pg.setProgress(100);
+               pg.done();
                return story;
        }
 
@@ -311,7 +304,7 @@ public abstract class BasicSupport {
         * @throws IOException
         *             in case of I/O error
         */
-       // ADD final when BasicSupport_Deprecated is gone
+       // TODO: ADD final when BasicSupport_Deprecated is gone
        public Story process(Progress pg) throws IOException {
                setCurrentReferer(source);
                login();
@@ -382,7 +375,7 @@ public abstract class BasicSupport {
                                String content = getChapterContent(chapUrl, i,
                                                pgGetChapterContent);
                                pgGetChapterContent.done();
-                               Chapter cc = BasicSupportPara.makeChapter(this, chapUrl, i,
+                               Chapter cc = bsPara.makeChapter(this, chapUrl, i,
                                                chapName, content, isHtml(), pgMakeChapter);
                                pgMakeChapter.done();
 
@@ -394,6 +387,7 @@ public abstract class BasicSupport {
                        }
 
                        pgChaps.setName("Extracting chapters");
+                       pgChaps.done();
                }
 
                pg.done();
@@ -401,6 +395,29 @@ public abstract class BasicSupport {
                return story;
        }
 
+       /**
+        * Create a chapter from the given data.
+        * 
+        * @param source
+        *            the source URL for this content, which can be used to try and
+        *            find images if images are present in the format [image-url]
+        * @param number
+        *            the chapter number (0 = description)
+        * @param name
+        *            the chapter name
+        * @param content
+        *            the content of the chapter
+        * @return the {@link Chapter}
+        * 
+        * @throws IOException
+        *             in case of I/O error
+        */
+       public Chapter makeChapter(URL source, int number, String name,
+                       String content) throws IOException {
+               return bsPara.makeChapter(this, source, number, name,
+                               content, isHtml(), null);
+       }
+
        /**
         * Return a {@link BasicSupport} implementation supporting the given
         * resource if possible.
@@ -440,10 +457,11 @@ public abstract class BasicSupport {
         * Return a {@link BasicSupport} implementation supporting the given type.
         * 
         * @param type
-        *            the type
+        *            the type, must not be NULL
         * @param url
         *            the {@link URL} to support (can be NULL to get an
-        *            "abstract support")
+        *            "abstract support"; if not NULL, will be used as the source
+        *            URL)
         * 
         * @return an implementation that supports it, or NULL
         */
@@ -471,8 +489,8 @@ public abstract class BasicSupport {
                case TEXT:
                        support = new Text();
                        break;
-               case MANGAFOX:
-                       support = new MangaFox();
+               case MANGAHUB:
+                       support = new MangaHub();
                        break;
                case E621:
                        support = new E621();