/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt * or http://forgerock.org/license/CDDLv1.0.html. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at legal-notices/CDDLv1_0.txt. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2006-2008 Sun Microsystems, Inc. * Portions Copyright 2014-2015 ForgeRock AS */ package org.opends.server.types; import java.util.List; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.ldap.ResultCode; import org.opends.server.api.plugin.PluginResult.OperationResult; /** * This class defines a data structure that holds information about * the result of processing by a synchronization provider. */ @org.opends.server.types.PublicAPI( stability=org.opends.server.types.StabilityLevel.VOLATILE, mayInstantiate=false, mayExtend=false, mayInvoke=true) public interface SynchronizationProviderResult extends OperationResult { /** Defines a continue processing synchronization provider result. */ public class ContinueProcessing implements SynchronizationProviderResult { @Override public ResultCode getResultCode() { return null; } @Override public DN getMatchedDN() { return null; } @Override public List<String> getReferralURLs() { return null; } @Override public boolean continueProcessing() { return true; } @Override public LocalizableMessage getErrorMessage() { return null; } @Override public String toString() { return getClass().getSimpleName(); } } /** Defines a stop processing synchronization provider result. */ public class StopProcessing implements SynchronizationProviderResult { /** The result code for this result. */ private final ResultCode resultCode; private final LocalizableMessage errorMessage; /** The matched DN for this result. */ private final DN matchedDN; /** The set of referral URLs for this result. */ private final List<String> referralURLs; /** * Construct a new stop processing synchronization provider result. * * @param resultCode * The result code for this result. * @param errorMessage * An message explaining why processing should stop. * @param matchedDN * The matched DN for this result. * @param referralURLs * The set of referral URLs for this result. */ public StopProcessing(ResultCode resultCode, LocalizableMessage errorMessage, DN matchedDN, List<String> referralURLs) { this.errorMessage = errorMessage; this.matchedDN = matchedDN; this.resultCode = resultCode; this.referralURLs = referralURLs; } /** * Construct a new stop processing synchronization provider result. * * @param resultCode * The result code for this result. * @param errorMessage * An message explaining why processing should stop. */ public StopProcessing(ResultCode resultCode, LocalizableMessage errorMessage) { this.errorMessage = errorMessage; this.resultCode = resultCode; this.matchedDN = null; this.referralURLs = null; } @Override public ResultCode getResultCode() { return resultCode; } @Override public DN getMatchedDN() { return matchedDN; } @Override public List<String> getReferralURLs() { return referralURLs; } @Override public boolean continueProcessing() { return false; } @Override public LocalizableMessage getErrorMessage() { return errorMessage; } @Override public String toString() { StringBuilder sb = new StringBuilder(getClass().getSimpleName()) .append("(resultCode=").append(resultCode) .append(", errorMessage=").append(errorMessage); if (matchedDN != null) { sb.append(", matchedDN=").append(matchedDN); } if (referralURLs != null && !referralURLs.isEmpty()) { sb.append(", referralURLs=").append(referralURLs); } sb.append(")"); return sb.toString(); } } }