package org.jboss.seam.persistence; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Create; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.intercept.BypassInterceptors; import org.jboss.seam.core.Expressions.ValueExpression; /** * Support for declarative application of * Hibernate filters to persistence contexts. * * @see org.hibernate.Filter * @see ManagedHibernateSession * @see ManagedPersistenceContext * @author Gavin King */ @BypassInterceptors @Scope(ScopeType.APPLICATION) public class Filter implements Serializable { private String name; // default to no parameters private Map<String, ValueExpression> parameters = new HashMap<String, ValueExpression>(); private ValueExpression enabled; @Create public void create(Component component) { //default the filter name to the component name if (name==null) { name = component.getName(); } } /** * The filter parameters. * * @see org.hibernate.Filter#setParameter(String, Object) */ public Map<String, ValueExpression> getParameters() { return parameters; } public void setParameters(Map<String, ValueExpression> parameters) { this.parameters = parameters; } /** * The Hibernate filter name. * * @see org.hibernate.Session#enableFilter(String) */ public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isFilterEnabled() { ValueExpression enabledValueBinding = getEnabled(); if (enabledValueBinding==null) { return true; } else { Boolean enabled = (Boolean) enabledValueBinding.getValue(); return enabled!=null && enabled; } } @Override public String toString() { return "Filter(" + name + ")"; } public ValueExpression getEnabled() { return enabled; } public void setEnabled(ValueExpression enabled) { this.enabled = enabled; } }