Clover icon

magnolia-module-rssaggregator 2.6.2

  1. Project Clover database Wed Feb 13 2019 12:15:44 CET
  2. Package info.magnolia.module.rssaggregator.importhandler

File FilterPredicate.java

 

Coverage histogram

../../../../../img/srcFileCovDistChart7.png
35% of files have more coverage

Code metrics

4
7
1
2
108
30
4
0.57
7
0.5
4
33.3% of code in this file is excluded from these metrics.

Classes

Class Line # Actions
FilterPredicate 48 7 33.3% 4 4
0.666666766.7%
FilterPredicate.Condition 53 0 - 0 0
-1.0 -
 

Contributing tests

This file is covered by 21 tests. .

Source view

1    /**
2    * This file Copyright (c) 2008-2018 Magnolia International
3    * Ltd. (http://www.magnolia-cms.com). All rights reserved.
4    *
5    *
6    * This file is dual-licensed under both the Magnolia
7    * Network Agreement and the GNU General Public License.
8    * You may elect to use one or the other of these licenses.
9    *
10    * This file is distributed in the hope that it will be
11    * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the
12    * implied warranty of MERCHANTABILITY or FITNESS FOR A
13    * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT.
14    * Redistribution, except as permitted by whichever of the GPL
15    * or MNA you select, is prohibited.
16    *
17    * 1. For the GPL license (GPL), you can redistribute and/or
18    * modify this file under the terms of the GNU General
19    * Public License, Version 3, as published by the Free Software
20    * Foundation. You should have received a copy of the GNU
21    * General Public License, Version 3 along with this program;
22    * if not, write to the Free Software Foundation, Inc., 51
23    * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24    *
25    * 2. For the Magnolia Network Agreement (MNA), this file
26    * and the accompanying materials are made available under the
27    * terms of the MNA which accompanies this distribution, and
28    * is available at http://www.magnolia-cms.com/mna.html
29    *
30    * Any modifications to this file must keep this entire header
31    * intact.
32    *
33    */
34    package info.magnolia.module.rssaggregator.importhandler;
35   
36    import org.apache.commons.lang3.StringUtils;
37   
38    /**
39    * A filter predicate that can be applied to a feed {@link com.sun.syndication.feed.synd.SyndFeed entry}.
40    * <p/>
41    * A filter predicate typically belongs to a {@link AggregateFilter} which in turn is defined for an {@link
42    * AggregateFeed}.
43    *
44    * @see AggregateFilter
45    * @see com.sun.syndication.feed.synd.SyndFeed
46    * @see AggregateFeed
47    */
 
48    public class FilterPredicate {
49   
50    /**
51    * Conditions to aggregate predicates.
52    */
 
53    enum Condition {
54    AND, OR, NOT
55    }
56   
57    private final Condition condition;
58    private final String property;
59    private final String regularExpression;
60   
61    /**
62    * Create a new FilterPredicate for the given <code>condition</code>, <code>property</code> and
63    * <code>regularExpression</code>.
64    *
65    * @param condition the {@link Condition condition} for this predicate
66    * @param property the property of the feed this predicate applies to (eg. 'author')
67    * @param regularExpression the regular expression the value of the property should or should not match
68    */
 
69  52 toggle public FilterPredicate(Condition condition, String property, String regularExpression) {
70  52 if (condition == null) {
71  0 throw new IllegalArgumentException("'condition' must not be null");
72    }
73  52 if (StringUtils.isBlank(property) || StringUtils.isBlank(regularExpression)) {
74  0 throw new IllegalArgumentException("'property' and 'regularExpression' must not be empty");
75    }
76  52 this.condition = condition;
77  52 this.property = property;
78  52 this.regularExpression = regularExpression;
79    }
80   
81    /**
82    * Return the condition for this predicate.
83    *
84    * @return the condition for this predicate
85    */
 
86    toggle public Condition getCondition() {
87    return condition;
88    }
89   
90    /**
91    * Return the property of the feed this predicate applies to.
92    *
93    * @return the property of the feed this predicate applies to
94    */
 
95    toggle public String getProperty() {
96    return property;
97    }
98   
99    /**
100    * Return the regular expression for this predicate.
101    *
102    * @return the regular expression for this predicate
103    */
 
104    toggle public String getRegularExpression() {
105    return regularExpression;
106    }
107   
108    }