/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.filter.impl; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; import org.hibernate.search.filter.FilterKey; /** * A {@link FilterKey} based on the name of a filter definition and the name/value pairs passed to a given instantiation * of that definition. * * @author Gunnar Morling */ // The deprecated public type FilterKey is extended here to plug the new mechanism of automatic key determination into // the existing key handling routine. DefaultFilterKey will be the one and only key type as of Hibernate Search 6. @SuppressWarnings("deprecation") public final class DefaultFilterKey extends FilterKey { private final String filterDefName; private final SortedMap<String, Object> parameters; public DefaultFilterKey(String filterDefName, Map<String, Object> parameters) { this.filterDefName = filterDefName; this.parameters = new TreeMap<>( parameters ); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ( ( parameters == null ) ? 0 : parameters.hashCode() ); return result; } @Override public boolean equals(Object obj) { if ( this == obj ) { return true; } if ( obj == null ) { return false; } if ( DefaultFilterKey.class != obj.getClass() ) { return false; } DefaultFilterKey other = (DefaultFilterKey) obj; if ( filterDefName == null ) { if ( other.filterDefName != null ) { return false; } } else if ( !filterDefName.equals( other.filterDefName ) ) { return false; } if ( parameters == null ) { if ( other.parameters != null ) { return false; } } else if ( !parameters.equals( other.parameters ) ) { return false; } return true; } @Override public String toString() { return "DefaultFilterKey [filterDefName=" + filterDefName + ", parameters=" + parameters + "]"; } }