/*
* Copyright (c) 2017 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.magma.filter.views;
import org.obiba.magma.ValueSet;
import org.obiba.magma.filter.FilterChain;
import org.obiba.magma.views.View;
import org.obiba.magma.views.WhereClause;
public class FilterChainWhereClause implements WhereClause {
//
// Instance Variables
//
private FilterChain<ValueSet> filterChain;
//
// Constructors
//
/**
* No-arg constructor for XStream.
*/
public FilterChainWhereClause() {
}
public FilterChainWhereClause(FilterChain<ValueSet> filterChain) {
this.filterChain = filterChain;
}
//
// WhereClause Methods
//
@Override
public boolean where(ValueSet valueSet) {
return where(valueSet, null);
}
@Override
public boolean where(ValueSet valueSet, View view) {
if(filterChain == null) {
throw new IllegalStateException("Null filterChain");
}
return filterChain.filter(valueSet) != null;
}
//
// Methods
//
public void setFilterChain(FilterChain<ValueSet> filterChain) {
this.filterChain = filterChain;
}
}