/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2010-2013 ForgeRock AS. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* http://forgerock.org/license/CDDLv1.0.html
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at http://forgerock.org/license/CDDLv1.0.html
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*/
package org.identityconnectors.framework.api;
/**
* SPI search operation has a default
* {@link org.identityconnectors.framework.common.objects.ResultsHandler}-chain
* as:
* <ul>
* <li>NormalizingResultsHandler</li>
* <li>FilteredResultsHandler</li>
* <li>AttributesToGetSearchResultsHandler</li>
* </ul>
* This configuration allow to overconfigure the chain.
*
* @author $author$
* @since 1.1
*/
public class ResultsHandlerConfiguration {
/**
* Enables the
* {@link org.identityconnectors.framework.impl.api.local.operations.NormalizingResultsHandler}
* in the handler chain.
*/
boolean enableNormalizingResultsHandler = true;
/**
* Enables the
* {@link org.identityconnectors.framework.impl.api.local.operations.FilteredResultsHandler}
* in the handler chain.
*/
boolean enableFilteredResultsHandler = true;
/**
* Enables the case insensitive filtering.
*/
boolean enableCaseInsensitiveFilter = false;
/**
* Enables the
* {@link org.identityconnectors.framework.impl.api.local.operations.SearchImpl.AttributesToGetSearchResultsHandler}
* in the handler chain.
*/
boolean enableAttributesToGetSearchResultsHandler = true;
/**
* default empty constructor.
*/
public ResultsHandlerConfiguration() {
}
/**
* Copy constructor.
*
* @param source
* configuration that copied to.
*/
public ResultsHandlerConfiguration(ResultsHandlerConfiguration source) {
this.enableNormalizingResultsHandler = source.isEnableNormalizingResultsHandler();
this.enableFilteredResultsHandler = source.isEnableFilteredResultsHandler();
this.enableCaseInsensitiveFilter = source.isEnableCaseInsensitiveFilter();
this.enableAttributesToGetSearchResultsHandler =
source.isEnableAttributesToGetSearchResultsHandler();
}
public boolean isEnableAttributesToGetSearchResultsHandler() {
return enableAttributesToGetSearchResultsHandler;
}
public void setEnableAttributesToGetSearchResultsHandler(
boolean enableAttributesToGetSearchResultsHandler) {
this.enableAttributesToGetSearchResultsHandler = enableAttributesToGetSearchResultsHandler;
}
public boolean isEnableCaseInsensitiveFilter() {
return enableCaseInsensitiveFilter;
}
public void setEnableCaseInsensitiveFilter(boolean enableCaseInsensitiveFilter) {
this.enableCaseInsensitiveFilter = enableCaseInsensitiveFilter;
}
public boolean isEnableFilteredResultsHandler() {
return enableFilteredResultsHandler;
}
public void setEnableFilteredResultsHandler(boolean enableFilteredResultsHandler) {
this.enableFilteredResultsHandler = enableFilteredResultsHandler;
}
public boolean isEnableNormalizingResultsHandler() {
return enableNormalizingResultsHandler;
}
public void setEnableNormalizingResultsHandler(boolean enableNormalizingResultsHandler) {
this.enableNormalizingResultsHandler = enableNormalizingResultsHandler;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final ResultsHandlerConfiguration other = (ResultsHandlerConfiguration) obj;
if (this.enableNormalizingResultsHandler != other.enableNormalizingResultsHandler) {
return false;
}
if (this.enableFilteredResultsHandler != other.enableFilteredResultsHandler) {
return false;
}
if (this.enableCaseInsensitiveFilter != other.enableCaseInsensitiveFilter) {
return false;
}
if (this.enableAttributesToGetSearchResultsHandler != other.enableAttributesToGetSearchResultsHandler) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 3;
hash = 79 * hash + (this.enableNormalizingResultsHandler ? 1 : 0);
hash = 79 * hash + (this.enableFilteredResultsHandler ? 1 : 0);
hash = 79 * hash + (this.enableCaseInsensitiveFilter ? 1 : 0);
hash = 79 * hash + (this.enableAttributesToGetSearchResultsHandler ? 1 : 0);
return hash;
}
@Override
public String toString() {
return "ResultsHandlerConfiguration{" + "enableNormalizingResultsHandler="
+ enableNormalizingResultsHandler + "\nenableFilteredResultsHandler="
+ enableFilteredResultsHandler + "\nenableCaseInsensitiveFilter="
+ enableCaseInsensitiveFilter + "\nenableAttributesToGetSearchResultsHandler="
+ enableAttributesToGetSearchResultsHandler + '}';
}
}