package org.geotools.filter; import org.geotools.Builder; import org.geotools.factory.CommonFactoryFinder; import org.opengis.filter.Filter; import org.opengis.filter.FilterFactory; /** * FitlerBuilder acting as a simple wrapper around an Expression. * * * @source $URL$ */ public class FilterBuilder implements Builder<Filter> { protected Filter filter; // placeholder just to keep us going right now protected FilterFactory ff = CommonFactoryFinder.getFilterFactory2(null); protected boolean unset = false; protected Builder<? extends Filter> delegate = null; public FilterBuilder(){ reset(); } public FilterBuilder( Filter filter ){ reset( filter ); } /** * Build the expression. */ public Filter build() { if( unset ) { return null; } return filter; } public FilterBuilder reset() { this.delegate = null; this.filter = org.opengis.filter.Filter.EXCLUDE; this.unset = false; return this; } public FilterBuilder reset(Filter filter) { if( filter == null ){ return unset(); } this.filter = filter; this.unset = false; return this; } public FilterBuilder unset() { this.unset = true; this.delegate =null; this.filter = Filter.EXCLUDE; return this; } }