public Article loadArticle(ArticleRef ref, OperationObserver observer) throws ParseException {
   String html = articlePagesCache.loadFromCache(ref.getPageRef(), observer);
   if (html != null) {
     Article article = TestDe.parseArticle(ref, html);
     if (!article.containsLockedSubArticles()) return article;
     if (loginDataProvider.getLoginData() == null) return article;
     if (!TestDe.http.isInternetAvailable()) return article;
     articlePagesCache.delete(ref.getPageRef());
   }
   loginIfAvailable(observer);
   html = articlePagesCache.load(ref.getPageRef(), observer);
   return TestDe.parseArticle(ref, html);
 }
 private String loadSubArticleHtml(String pageRef, OperationObserver observer) {
   return articlePagesCache.load(pageRef, observer);
 }
 public void clearSubArticle(SubArticleRef subArticleRef) {
   articlePagesCache.delete(subArticleRef.getPageRef());
 }
 public void clearArticle(ArticleRef articleRef) {
   articlePagesCache.delete(articleRef.getPageRef());
 }