Package org.rssowl.core.persist.dao

Examples of org.rssowl.core.persist.dao.INewsDAO


    FeedLinkReference anotherFeedRef = anotherNews.getFeedReference();
    fFactory.createNews(null, anotherFeed, new Date());
    fFactory.createNews(null, anotherFeed, new Date()).setState(INews.State.DELETED);
    DynamicDAO.save(anotherFeed);

    INewsDAO newsDao = DynamicDAO.getDAO(INewsDAO.class);
   
    /* All states */
    Collection<INews> newsCollection = newsDao.loadAll(feedRef, EnumSet.allOf(INews.State.class));
    assertEquals(feed.getNews().size(), newsCollection.size());
    for (INews newsItem : feed.getNews())
      assertEquals(true, newsCollection.contains(newsItem));
   
    newsCollection = newsDao.loadAll(anotherFeedRef, EnumSet.allOf(INews.State.class));
    assertEquals(anotherFeed.getNews().size(), newsCollection.size());
    for (INews newsItem : anotherFeed.getNews())
      assertEquals(true, newsCollection.contains(newsItem));

    /* Two matching states */
    newsCollection = newsDao.loadAll(feedRef, EnumSet.of(INews.State.UNREAD, INews.State.UPDATED));
    assertEquals(2, newsCollection.size());
    assertEquals(true, newsCollection.contains(feed.getNews().get(1)));
    assertEquals(true, newsCollection.contains(feed.getNews().get(2)));

    /* One matching state */
    newsCollection = newsDao.loadAll(anotherFeedRef, EnumSet.of(INews.State.DELETED));
    assertEquals(1, newsCollection.size());
    assertEquals(anotherFeed.getNews().get(2), newsCollection.iterator().next());
   
    /* No matching state */
    newsCollection = newsDao.loadAll(feedRef, EnumSet.of(INews.State.DELETED));
    assertEquals(0, newsCollection.size());

    /* One state with two matches and two states with no matches */
    newsCollection = newsDao.loadAll(anotherFeedRef, EnumSet.of(INews.State.NEW, INews.State.HIDDEN, INews.State.UPDATED));
    assertEquals(2, newsCollection.size());
    assertEquals(true, newsCollection.contains(anotherFeed.getNews().get(0)));
    assertEquals(true, newsCollection.contains(anotherFeed.getNews().get(1)));
   
    /* Empty states */
    newsCollection = newsDao.loadAll(feedRef, EnumSet.noneOf(INews.State.class));
    assertEquals(0, newsCollection.size());
  }
View Full Code Here


    if (eventRunnables != null) {
      for (NewsEvent event : eventRunnables.getAllEvents())
        descriptionUpdatedIds.removeByElement(event.getEntity().getId().longValue());
    }

    INewsDAO newsDao = DynamicDAO.getDAO(INewsDAO.class);
    for (int i = 0, c = descriptionUpdatedIds.size(); i < c; ++i) {
      long newsId = descriptionUpdatedIds.get(i);
      INews news = newsDao.load(newsId);
      INews oldNews = DBHelper.peekPersistedNews(fDb, news);
      EventsMap.getInstance().putUpdateEvent(new NewsEvent(oldNews, news, false));
    }
  }
View Full Code Here

      for (INews newsItem : news) {
        if (newsItem.getState() == INews.State.NEW)
          newsToUpdate.add(newsItem);
      }

      INewsDAO newsDao = Owl.getPersistenceService().getDAOService().getNewsDAO();
      newsDao.setState(newsToUpdate, INews.State.UNREAD, true, false);
    }

    /* Handle seen News: Feed Change (also closing the feed view) or Minimize Event */
    else if (isBookMark || (markReadOnFeedChange && event == UIEvent.FEED_CHANGE) || (markReadOnMinimize && event == UIEvent.MINIMIZE)) {
      JobRunner.runInBackgroundThread(HANDLE_NEWS_SEEN_DELAY, new Runnable() {
        public void run() {

          /* Application might be in process of closing */
          if (Controller.getDefault().isShuttingDown())
            return;

          /* Check settings if mark as read should be performed */
          boolean markRead = false;
          if (event == UIEvent.FEED_CHANGE)
            markRead = markReadOnFeedChange;
          else if (event == UIEvent.MINIMIZE)
            markRead = markReadOnMinimize;

          /* Perform the State Change */
          List<INews> newsToUpdate = new ArrayList<INews>();
          for (INews newsItem : news) {
            if (newsItem.getState() == INews.State.NEW)
              newsToUpdate.add(newsItem);
            else if (markRead && (newsItem.getState() == INews.State.UPDATED || newsItem.getState() == INews.State.UNREAD))
              newsToUpdate.add(newsItem);
          }

          /* Force quick update on Feed-Change */
          if (event == UIEvent.FEED_CHANGE && !newsToUpdate.isEmpty())
            Controller.getDefault().getSavedSearchService().forceQuickUpdate();

          INewsDAO newsDao = Owl.getPersistenceService().getDAOService().getNewsDAO();
          newsDao.setState(newsToUpdate, markRead ? INews.State.READ : INews.State.UNREAD, true, false);

          /* Retention Strategy */
          if (isBookMark)
            RetentionStrategy.process((IBookMark) inputMark, news);
        }
View Full Code Here

    }

    feeds = null;
    System.gc();

    final INewsDAO newsDAO = DynamicDAO.getDAO(INewsDAO.class);
    List<ITask> tasks = new ArrayList<ITask>();
    tasks.add(new TaskAdapter() {
      public IStatus run(IProgressMonitor monitor) {
        List<INews> news = new ArrayList<INews>();
        for (FeedLinkReference feedRef : feedRefs) {
          if (resolveFeed) {
            news.addAll(feedRef.resolve().getNewsByStates(unreadStates));
          }
          else {
            news.addAll(newsDAO.loadAll(feedRef, unreadStates));
          }
        }

        newsDAO.setState(news, INews.State.HIDDEN, updateEquivalent, false);

        return Status.OK_STATUS;
      }
    });
View Full Code Here

   *
   * @throws Exception
   */
  @Test
  public void testNewsService() throws Exception {
    INewsDAO newsDao = Owl.getPersistenceService().getDAOService().getNewsDAO();
    NewsService service = Controller.getDefault().getNewsService();

    IFeed feed = new Feed(new URI("http://www.rssowl.org/rssowl2dg/tests/manager/rss_2_0.xml")); //$NON-NLS-1$
    feed = DynamicDAO.save(feed);

    assertEquals(0, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(0, getStickyCount(feed));

    Owl.getModelFactory().createNews(null, feed, new Date()); //$NON-NLS-1$
    feed = DynamicDAO.save(feed);

    assertEquals(1, getUnreadCount(feed));
    assertEquals(1, getNewCount(feed));
    assertEquals(0, getStickyCount(feed));

    newsDao.setState(feed.getNews(), INews.State.READ, true, false);
    assertEquals(0, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(0, getStickyCount(feed));

    newsDao.setState(feed.getNews(), INews.State.UNREAD, true, false);
    feed.getNews().get(0).setFlagged(true);
    DynamicDAO.save(feed.getNews().get(0));

    assertEquals(1, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(1, getStickyCount(feed));

    newsDao.setState(feed.getNews(), INews.State.READ, true, false);
    assertEquals(0, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(1, getStickyCount(feed));

    newsDao.setState(feed.getNews(), INews.State.UPDATED, true, false);
    assertEquals(1, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(1, getStickyCount(feed));

    feed.getNews().get(0).setFlagged(false);
    DynamicDAO.save(feed.getNews().get(0));
    newsDao.setState(feed.getNews(), INews.State.READ, true, false);

    assertEquals(0, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(0, getStickyCount(feed));

    /* Simulate Shutdown */
    service.stopService();

    Owl.getModelFactory().createNews(null, feed, new Date()); //$NON-NLS-1$
    feed = DynamicDAO.save(feed);

    Owl.getModelFactory().createNews(null, feed, new Date()); //$NON-NLS-1$
    feed = DynamicDAO.save(feed);

    assertEquals(2, getUnreadCount(feed));
    assertEquals(2, getNewCount(feed));
    assertEquals(0, getStickyCount(feed));

    newsDao.setState(feed.getNews(), INews.State.READ, true, false);
    feed.getNews().get(0).setFlagged(true);
    feed.getNews().get(1).setFlagged(true);
    DynamicDAO.save(feed);

    assertEquals(0, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(2, getStickyCount(feed));

    newsDao.setState(feed.getNews(), INews.State.UNREAD, true, false);

    assertEquals(3, getUnreadCount(feed));
    assertEquals(0, getNewCount(feed));
    assertEquals(2, getStickyCount(feed));

View Full Code Here

            newsToUpdate.add(newsItem);
          else if (markRead && (newsItem.getState() == INews.State.UPDATED || newsItem.getState() == INews.State.UNREAD))
            newsToUpdate.add(newsItem);
        }

        INewsDAO newsDao = Owl.getPersistenceService().getDAOService().getNewsDAO();
        newsDao.setState(newsToUpdate, markRead ? INews.State.READ : INews.State.UNREAD, true, false);

        /* Retention Strategy */
        if (bookmark != null)
          RetentionStrategy.process(bookmark, news);
      }
View Full Code Here

   * @see org.eclipse.jface.wizard.Wizard#performFinish()
   */
  @SuppressWarnings("restriction")
  @Override
  public boolean performFinish() {
    final INewsDAO newsDao = DynamicDAO.getDAO(INewsDAO.class);
    final CleanUpOperations operations = fCleanUpOptionsPage.getOperations();

    /* Receive Tasks */
    final List<CleanUpTask> tasks = fCleanUpSummaryPage.getTasks();

    /* Show final confirmation prompt */
    int bmCounter = 0;
    int newsCounter = 0;
    for (CleanUpTask task : tasks) {
      if (task instanceof BookMarkTask)
        bmCounter++;
      else if (task instanceof NewsTask)
        newsCounter += ((NewsTask) task).getNews().size();
    }

    if (bmCounter != 0 || newsCounter != 0) {
      String msg = "Are you sure you want to delete ";
      String bmMsg = bmCounter > 1 ? bmCounter + " bookmarks" : bmCounter + " bookmark";
      if (bmCounter != 0 && newsCounter != 0)
        msg += bmMsg + " and " + newsCounter + " news?";
      else if (bmCounter != 0)
        msg += bmMsg + "?";
      else
        msg += newsCounter + " news?";

      ConfirmDeleteDialog dialog = new ConfirmDeleteDialog(getShell(), "Confirm Delete", "This action can not be undone", msg, null);
      if (dialog.open() != Window.OK)
        return false;
    }

    /* Runnable that performs the tasks */
    IRunnableWithProgress runnable = new IRunnableWithProgress() {
      public void run(IProgressMonitor monitor) {
        boolean optimizeSearch = false;
        monitor.beginTask("Please wait while cleaning up...", IProgressMonitor.UNKNOWN);

        /* Perform Tasks */
        List<IBookMark> bookmarks = new ArrayList<IBookMark>();
        for (CleanUpTask task : tasks) {

          /* Delete Bookmark Task */
          if (task instanceof BookMarkTask)
            bookmarks.add(((BookMarkTask) task).getMark());

          /* Delete News Task */
          else if (task instanceof NewsTask) {
            Collection<NewsReference> news = ((NewsTask) task).getNews();
            List<INews> resolvedNews = new ArrayList<INews>(news.size());
            for (NewsReference newsRef : news)
              resolvedNews.add(newsRef.resolve());

            newsDao.setState(resolvedNews, INews.State.DELETED, false, false);
          }

          /* Optimize Lucene */
          else if (task instanceof OptimizeSearchTask)
            optimizeSearch = true;
View Full Code Here

    }

    feeds = null;
    System.gc();

    final INewsDAO newsDAO = DynamicDAO.getDAO(INewsDAO.class);
    List<ITask> tasks = new ArrayList<ITask>();
    tasks.add(new TaskAdapter() {
      public IStatus run(IProgressMonitor monitor) {
        List<INews> news = new ArrayList<INews>();
        for (FeedLinkReference feedRef : feedRefs) {
          if (resolveFeed) {
            news.addAll(feedRef.resolve().getNewsByStates(unreadStates));
          } else {
            news.addAll(newsDAO.loadAll(feedRef, unreadStates));
          }
        }

        newsDAO.setState(news, INews.State.HIDDEN, updateEquivalent, false);

        return Status.OK_STATUS;
      }
    });
View Full Code Here

  }

  private List<INews> getNewsFromRefs(Collection<NewsReference> newsRefs) {
    List<INews> newsList = new ArrayList<INews>(newsRefs.size());
    List<NewsReference> removedNewsRefs = new ArrayList<NewsReference>(1);
    INewsDAO newsDAO = InternalOwl.getDefault().getPersistenceService().getDAOService().getNewsDAO();
    for (NewsReference newsRef : newsRefs) {
      INews news = newsDAO.load(newsRef.getId());
      if (news == null)
        removedNewsRefs.add(newsRef);
      else
        newsList.add(news);
    }
View Full Code Here

    news2.setLink(new URI("http://www.news.com"));

    DynamicDAO.save(feed1);
    DynamicDAO.save(feed2);

    INewsDAO newsDao = DynamicDAO.getDAO(INewsDAO.class);

    newsDao.setState(Collections.singleton(news1), INews.State.READ, true, false);

    assertEquals(INews.State.READ, news1.getState());
    assertEquals(INews.State.READ, news2.getState());

    newsDao.setState(Collections.singleton(news1), INews.State.UNREAD, true, false);

    assertEquals(INews.State.UNREAD, news1.getState());
    assertEquals(INews.State.UNREAD, news2.getState());

    newsDao.setState(Collections.singleton(news1), INews.State.HIDDEN, false, false);

    assertEquals(INews.State.HIDDEN, news1.getState());
    assertEquals(INews.State.UNREAD, news2.getState());

    newsDao.setState(Collections.singleton(news2), INews.State.READ, true, false);

    assertEquals(INews.State.HIDDEN, news1.getState());
    assertEquals(INews.State.READ, news2.getState());

    newsDao.setState(Collections.singleton(news1), INews.State.DELETED, false, false);

    assertEquals(INews.State.DELETED, news1.getState());
    assertEquals(INews.State.READ, news2.getState());

    newsDao.setState(Collections.singleton(news2), INews.State.UNREAD, true, false);

    assertEquals(INews.State.DELETED, news1.getState());
    assertEquals(INews.State.UNREAD, news2.getState());
  }
View Full Code Here

TOP

Related Classes of org.rssowl.core.persist.dao.INewsDAO

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.