Package org.rssowl.core.persist

Examples of org.rssowl.core.persist.ISearchFilter


        query.descend("fId").constrain(Long.valueOf(filter.getId())); //$NON-NLS-1$

        List<INewsBin> result = query.execute();
        assertEquals(1, result.size());

        ISearchFilter otherFilter = (ISearchFilter) result.get(0);
        assertTrue(filter.getName().equals(otherFilter.getName()));
        assertEquals(filter.getActions().size(), otherFilter.getActions().size());

        ISearch search = filter.getSearch();
        ISearch otherSearch = otherFilter.getSearch();

        assertEquals(search.getSearchConditions().size(), otherSearch.getSearchConditions().size());
      }

      /* Assert Conditional Get */
 
View Full Code Here


    assertEquals(6, count(Label.class.getName(), elements));
    assertEquals(1, count(SearchFilter.class.getName(), elements));
    assertTrue(count(Preference.class.getName(), elements) > 0);

    ISearchFilter filter = null;
    for (IEntity element : elements) {
      if (element instanceof ISearchFilter) {
        filter = (ISearchFilter) element;
      }
    }

    assertNotNull(filter);

    ILabel label = null;
    for (IEntity element : elements) {
      if (element instanceof ILabel && "RSSOwl".equals(((ILabel) element).getName())) {
        label = (ILabel) element;
      }
    }

    assertNotNull(label);

    List<IFilterAction> actions = filter.getActions();
    assertEquals(2, actions.size());
    for (IFilterAction action : actions) {
      if (MoveNewsAction.ID.equals(action.getActionId())) {
        Object data = action.getData();
        assertTrue(data instanceof Long[]);
View Full Code Here

  @Test
  @SuppressWarnings( { "nls", "null", "unused", "unchecked" })
  public void testImport_Filter_Order() throws Exception {
    IFolder root = DynamicDAO.save(Owl.getModelFactory().createFolder(null, null, "Root"));

    ISearchFilter filter = Owl.getModelFactory().createSearchFilter(null, null, "Filter 1");
    filter.setMatchAllNews(true);
    filter.setEnabled(true);
    filter.setOrder(0);
    filter.addAction(Owl.getModelFactory().createFilterAction("org.rssowl.core.MarkReadNewsAction"));
    DynamicDAO.save(filter);

    /* Import */
    List<? extends IEntity> elements = Owl.getInterpreter().importFrom(getClass().getResourceAsStream("/data/importer/filter.opml"));
    assertEquals(1, elements.size());
View Full Code Here

    DynamicDAO.save(root);

    /* 1 Filter Matches All */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();
      ISearchFilter filter = fFactory.createSearchFilter(null, null, "Foo");
      filter.setMatchAllNews(true);
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches Folder (Scope) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(folder));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches Folder (Location) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(folder));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);
      search.setMatchAllConditions(true);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches BM 1 (Scope) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());
    }

    /* 1 Filter Matches BM 1 (Location) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());
    }

    /* 2 Filter Matches All and BM 1 (Scope) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      ISearchFilter filter = fFactory.createSearchFilter(null, null, "Foo");
      filter.setMatchAllNews(true);
      DynamicDAO.save(filter);
      filterSet.add(filter);

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 2 Filter Matches All and BM 1 (Location) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      ISearchFilter filter = fFactory.createSearchFilter(null, null, "Foo");
      filter.setMatchAllNews(true);
      DynamicDAO.save(filter);
      filterSet.add(filter);

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 2 Filter Matches BM 1 and All (Scope) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      ISearchFilter filter2 = fFactory.createSearchFilter(null, null, "Foo");
      filter2.setMatchAllNews(true);
      DynamicDAO.save(filter2);
      filterSet.add(filter2);

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
      assertEquals(2, filterSet.size());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
      assertEquals(1, filterSet.size());
      assertTrue(filterSet.contains(filter2));
    }

    /* 2 Filter Matches BM 1 and All (Location) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      ISearchFilter filter2 = fFactory.createSearchFilter(null, null, "Foo");
      filter2.setMatchAllNews(true);
      DynamicDAO.save(filter2);
      filterSet.add(filter2);

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
      assertEquals(2, filterSet.size());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
      assertEquals(1, filterSet.size());
      assertTrue(filterSet.contains(filter2));
    }

    /* 1 Filter Matches BM 1 and Folder (Scope) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Arrays.asList(new IFolderChild[] { bm1, folder }));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches BM 1 and Folder (Location) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Arrays.asList(new IFolderChild[] { bm1, folder }));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches BM 1 and BM 2 (Scope) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Arrays.asList(new IFolderChild[] { bm1, bm2 }));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches BM 1 and BM 2 (Location) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Arrays.asList(new IFolderChild[] { bm1, bm2 }));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);
      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches Empty Folder Child (Scope) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      DynamicDAO.delete(bm1);

      assertTrue(CoreUtils.toEntities(scope).isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());
    }

    /* 1 Filter Matches Empty Folder Child (Location) */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      DynamicDAO.delete(bm1);

      assertTrue(CoreUtils.toEntities(scope).isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());
    }

    /* 1 Filter Matches BM1 OR another condition */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearchCondition condition2 = fFactory.createSearchCondition(fFactory.createSearchField(INews.TITLE, INews.class.getName()), SearchSpecifier.CONTAINS, "Foo");

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);
      search.addSearchCondition(condition2);
      search.setMatchAllConditions(false);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      DynamicDAO.delete(bm1);

      assertTrue(CoreUtils.toEntities(scope).isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches BM1 AND another condition */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearchCondition condition2 = fFactory.createSearchCondition(fFactory.createSearchField(INews.TITLE, INews.class.getName()), SearchSpecifier.CONTAINS, "Foo");

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);
      search.addSearchCondition(condition2);
      search.setMatchAllConditions(true);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      DynamicDAO.delete(bm1);

      assertTrue(CoreUtils.toEntities(scope).isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());
    }

    /* 1 Filter Matches BM1 AND another Location */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.SCOPE, scope);
      ISearchCondition condition2 = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);
      search.addSearchCondition(condition2);
      search.setMatchAllConditions(true);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      DynamicDAO.delete(bm1);

      assertTrue(CoreUtils.toEntities(scope).isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(filterSet.isEmpty());
    }

    /* 1 Filter Matches BM1 AND another Location */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);
      ISearchCondition condition2 = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);
      search.addSearchCondition(condition2);
      search.setMatchAllConditions(true);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      DynamicDAO.delete(bm1);

      assertTrue(CoreUtils.toEntities(scope).isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm1).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());

      CoreUtils.removeFiltersByScope(filterSet, ((IBookMark) bm2).getFeedLinkReference().getLinkAsText());
      assertTrue(!filterSet.isEmpty());
    }

    /* 1 Filter Matches BM1 OR another Location */
    {
      Set<ISearchFilter> filterSet = new HashSet<ISearchFilter>();

      Long[][] scope = ModelUtils.toPrimitive(Collections.singletonList(bm1));
      ISearchCondition condition = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);
      ISearchCondition condition2 = fFactory.createSearchCondition(fFactory.createSearchField(INews.LOCATION, INews.class.getName()), SearchSpecifier.IS, scope);

      ISearch search = fFactory.createSearch(null);
      search.addSearchCondition(condition);
      search.addSearchCondition(condition2);
      search.setMatchAllConditions(false);

      ISearchFilter filter = fFactory.createSearchFilter(null, search, "Foo");
      DynamicDAO.save(filter);
      filterSet.add(filter);

      DynamicDAO.delete(bm1);

View Full Code Here

    ISearch search = fFactory.createSearch(null);
    search.addSearchCondition(condition);
    DynamicDAO.save(search);

    /* Filter 1: With Search */
    ISearchFilter filter1 = fFactory.createSearchFilter(null, search, "Filter 1");
    DynamicDAO.save(filter1);
    assertTrue(!CoreUtils.isOrphaned(filter1));

    /* Filter 2: With Move Action */
    ISearchFilter filter2 = fFactory.createSearchFilter(null, null, "Filter 2");
    IFilterAction action2 = fFactory.createFilterAction(MoveNewsAction.ID);
    action2.setData(ModelUtils.toPrimitive(Arrays.asList(bm1, bin1)));
    filter2.addAction(action2);
    DynamicDAO.save(filter2);
    assertTrue(!CoreUtils.isOrphaned(filter2));

    /* Filter 3: With Move and Label Action */
    ISearchFilter filter3 = fFactory.createSearchFilter(null, null, "Filter 3");
    IFilterAction action3 = fFactory.createFilterAction(MoveNewsAction.ID);
    action3.setData(ModelUtils.toPrimitive(Arrays.asList(bm1, bin1)));
    filter3.addAction(action3);
    filter3.addAction(fFactory.createFilterAction(LabelNewsAction.ID));
    DynamicDAO.save(filter3);
    assertTrue(!CoreUtils.isOrphaned(filter3));

    DynamicDAO.delete(bin1);
    assertTrue(CoreUtils.isOrphaned(filter1));
View Full Code Here

  }

  private void fillFilters() {

    /* 1) Match All News - Enabled - Mark Read */
    ISearchFilter filter = fFactory.createSearchFilter(null, null, "Filter 1");
    filter.setMatchAllNews(true);
    filter.setEnabled(true);
    filter.setOrder(5);
    filter.addAction(fFactory.createFilterAction("org.rssowl.core.MarkReadNewsAction"));
    DynamicDAO.save(filter);

    /* 2) Match All News - Disabled - Mark Read + Mark Sticky */
    filter = fFactory.createSearchFilter(null, null, "Filter 2");
    filter.setMatchAllNews(true);
    filter.setEnabled(false);
    filter.setOrder(0);
    filter.addAction(fFactory.createFilterAction("org.rssowl.core.MarkReadNewsAction"));
    filter.addAction(fFactory.createFilterAction("org.rssowl.core.MarkStickyNewsAction"));
    DynamicDAO.save(filter);

    /* 3) Entire News contains "Foo" - Enabled - Mark Read */
    ISearch search = fFactory.createSearch(null);
    ISearchField entireNewsField = fFactory.createSearchField(IEntity.ALL_FIELDS, INews.class.getName());
    search.addSearchCondition(fFactory.createSearchCondition(entireNewsField, SearchSpecifier.CONTAINS, "Foo"));
    filter = fFactory.createSearchFilter(null, search, "Filter 3");
    filter.setMatchAllNews(false);
    filter.setOrder(3);
    filter.addAction(fFactory.createFilterAction("org.rssowl.core.MarkReadNewsAction"));
    DynamicDAO.save(filter);

    /* 4) Entire News contains "Foo" or "Bar" - Enabled - Mark Read */
    search = fFactory.createSearch(null);
    search.setMatchAllConditions(true);
    search.addSearchCondition(fFactory.createSearchCondition(entireNewsField, SearchSpecifier.CONTAINS, "Foo"));
    search.addSearchCondition(fFactory.createSearchCondition(entireNewsField, SearchSpecifier.CONTAINS, "Bar"));
    filter = fFactory.createSearchFilter(null, search, "Filter 4");
    filter.setMatchAllNews(false);
    filter.setOrder(4);
    filter.addAction(fFactory.createFilterAction("org.rssowl.core.MarkReadNewsAction"));
    DynamicDAO.save(filter);

    /* 5) Location is "XY" - Enabled - Mark Read */
    search = fFactory.createSearch(null);
    ISearchField locationField = fFactory.createSearchField(INews.LOCATION, INews.class.getName());
    search.addSearchCondition(fFactory.createSearchCondition(locationField, SearchSpecifier.SCOPE, ModelUtils.toPrimitive(Arrays.asList(new IFolderChild[] { fBookMark1, fNewsBin }))));
    filter = fFactory.createSearchFilter(null, search, "Filter 5");
    filter.setMatchAllNews(false);
    filter.setOrder(8);
    filter.addAction(fFactory.createFilterAction("org.rssowl.core.MarkReadNewsAction"));
    DynamicDAO.save(filter);

    /* 6) Match All News - Enabled - Label News */
    filter = fFactory.createSearchFilter(null, null, "Filter 6");
    filter.setMatchAllNews(true);
    filter.setOrder(5);
    IFilterAction action = fFactory.createFilterAction(LabelNewsAction.ID);
    action.setData(fImportantLabel.getId());
    filter.addAction(action);
    DynamicDAO.save(filter);

    /* 7) Match All News - Enabled - Label News + Move News + Play Sound */
    filter = fFactory.createSearchFilter(null, null, "Filter 7");
    filter.setMatchAllNews(true);
    filter.setOrder(5);
    action = fFactory.createFilterAction(LabelNewsAction.ID);
    action.setData(fImportantLabel.getId());
    filter.addAction(action);

    action = fFactory.createFilterAction(MoveNewsAction.ID);
    action.setData(new Long[] { fNewsBin.getId() });
    filter.addAction(action);

    action = fFactory.createFilterAction("org.rssowl.ui.PlaySoundAction");
    action.setData("C:\\ProgramData\\Microsoft\\Windows & Help\\Start Menu");
    filter.addAction(action);

    DynamicDAO.save(filter);

    /* 8) Filter with Properties as Data */
    filter = fFactory.createSearchFilter(null, null, "Filter 8");
    filter.setMatchAllNews(true);
    filter.setOrder(5);

    action = fFactory.createFilterAction("org.rssowl.ui.PlaySoundAction");
    Properties props = new Properties();
    props.setProperty("foo", "bar");
    props.setProperty("hello world", " world hello ");
    props.setProperty("<some xml>tags</a>", "foo & bar");
    action.setData(props);
    filter.addAction(action);

    DynamicDAO.save(filter);

    /* 9) Location is DELETED - Enabled - Mark Read */
    search = fFactory.createSearch(null);
    locationField = fFactory.createSearchField(INews.LOCATION, INews.class.getName());
    Long[][] result = new Long[3][];
    result[0] = new Long[] { 99999l };
    search.addSearchCondition(fFactory.createSearchCondition(locationField, SearchSpecifier.SCOPE, result));
    filter = fFactory.createSearchFilter(null, search, "Filter 9");
    filter.setMatchAllNews(false);
    filter.setOrder(9);
    filter.addAction(fFactory.createFilterAction("org.rssowl.core.MarkReadNewsAction"));
    DynamicDAO.save(filter);
  }
View Full Code Here

      search.addSearchCondition(factory.createSearchCondition(field, SearchSpecifier.IS, "foobar"));

      field = factory.createSearchField(INews.TITLE, INews.class.getName());
      search.addSearchCondition(factory.createSearchCondition(field, SearchSpecifier.IS, "anything"));

      ISearchFilter filter = factory.createSearchFilter(null, search, "Filter 1");
      filter.setEnabled(true);
      filter.setOrder(0);

      filter.addAction(factory.createFilterAction("org.rssowl.core.StopFilterAction"));

      DynamicDAO.save(filter);
    }

    List<ITask> tasks = getRealWorldReloadTasks(feedFolder.getAbsolutePath());
View Full Code Here

TOP

Related Classes of org.rssowl.core.persist.ISearchFilter

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.