gemire / daofusion

Automatically exported from code.google.com/p/daofusion
0 stars 1 forks source link

Utility class for commonly used PropertyFilterCriterionProvider instances #7

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
DAO Fusion currently delegates PropertyFilterCriterionProvider
implementation to the developer.

We could have a helper class for commonly used
PropertyFilterCriterionProvider's, like this:

public static class LikeFilterCriterion implements
PropertyFilterCriterionProvider {

        public Criterion getCriterion(String targetPropertyName, Object[]
filterObjectValues, Object[] directValues) {
            return Restrictions.like(targetPropertyName, directValues[0]);
        }

        public boolean enabled(Object[] filterObjectValues, Object[]
directValues) {
            return (directValues.length == 1 && directValues[0] != null);
        }

}

These would be based on some abstract PropertyFilterCriterionProvider
implementations, such as UnaryDirectValueProvider / BinaryDirectValueProvider:
http://opensource.anasoft.sk/daofusion-site/reference/cto-pattern.html

Original issue reported on code.google.com by Vojtech....@gmail.com on 21 May 2009 at 12:05

GoogleCodeExporter commented 9 years ago
PropertyFilterCriterionProvider interface was renamed to FilterCriterionProvider
during recent refactoring (methods and their signatures remained unchanged).

There is now a base class for simple FilterCriterionProvider implementations 
that use
either filter object or direct values filter data concept.

For example:

public static final FilterCriterionProvider LIKE = new
SimpleFilterCriterionProvider(FilterDataStrategy.DIRECT, 1) {
    public Criterion getCriterion(String targetPropertyName, Object[]
filterObjectValues, Object[] directValues) {
        return Restrictions.like(targetPropertyName, directValues[0]);
    }
};

See the Javadocs for more information.

Original comment by Vojtech....@gmail.com on 15 Jun 2009 at 8:45

GoogleCodeExporter commented 9 years ago

Original comment by Vojtech....@gmail.com on 15 Jun 2009 at 8:46