| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.controls; |
| | | |
| | |
| | | import org.opends.server.protocols.ldap.LDAPResultCode; |
| | | import org.opends.server.types.Control; |
| | | import org.opends.server.types.DN; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.ProtocolMessages.*; |
| | | import static org.opends.server.util.ServerConstants.*; |
| | |
| | | public class EntryChangeNotificationControl |
| | | extends Control |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.controls.EntryChangeNotificationControl"; |
| | | |
| | | |
| | | |
| | |
| | | super(OID_ENTRY_CHANGE_NOTIFICATION, false, |
| | | encodeValue(changeType, null, changeNumber)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(changeType), |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeType = changeType; |
| | | this.changeNumber = changeNumber; |
| | |
| | | super(OID_ENTRY_CHANGE_NOTIFICATION, false, |
| | | encodeValue(changeType, previousDN, changeNumber)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(changeType), |
| | | String.valueOf(previousDN), |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeType = changeType; |
| | | this.previousDN = previousDN; |
| | |
| | | { |
| | | super(oid, isCritical, encodeValue(changeType, previousDN, changeNumber)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(changeType), |
| | | String.valueOf(previousDN), |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeType = changeType; |
| | | this.previousDN = previousDN; |
| | |
| | | { |
| | | super(oid, isCritical, encodedValue); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(oid), |
| | | String.valueOf(isCritical), |
| | | String.valueOf(changeType), |
| | | String.valueOf(previousDN), |
| | | String.valueOf(changeNumber), |
| | | String.valueOf(encodedValue)); |
| | | |
| | | this.changeType = changeType; |
| | | this.previousDN = previousDN; |
| | |
| | | changeType, |
| | | DN previousDN, long changeNumber) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "encodeValue", String.valueOf(changeType), |
| | | String.valueOf(previousDN), String.valueOf(changeNumber)); |
| | | |
| | | |
| | | ArrayList<ASN1Element> elements = |
| | |
| | | public static EntryChangeNotificationControl decodeControl(Control control) |
| | | throws LDAPException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeControl", String.valueOf(control)); |
| | | |
| | | |
| | | if (! control.hasValue()) |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "decodeControl", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ECN_CANNOT_DECODE_VALUE; |
| | | String message = getMessage(msgID, stackTraceToSingleLineString(e)); |
| | |
| | | */ |
| | | public PersistentSearchChangeType getChangeType() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getChangeType"); |
| | | |
| | | return changeType; |
| | | } |
| | |
| | | */ |
| | | public void setChangeType(PersistentSearchChangeType changeType) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setChangeType", String.valueOf(changeType)); |
| | | |
| | | this.changeType = changeType; |
| | | |
| | |
| | | */ |
| | | public DN getPreviousDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getPreviousDN"); |
| | | |
| | | return previousDN; |
| | | } |
| | |
| | | */ |
| | | public void setPreviousDN(DN previousDN) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setPreviousDN", String.valueOf(previousDN)); |
| | | |
| | | this.previousDN = previousDN; |
| | | |
| | |
| | | */ |
| | | public long getChangeNumber() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getChangeNumber"); |
| | | |
| | | return changeNumber; |
| | | } |
| | |
| | | */ |
| | | public void setChangeNumber(long changeNumber) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setChangeNumber", |
| | | String.valueOf(changeNumber)); |
| | | |
| | | this.changeNumber = changeNumber; |
| | | |
| | |
| | | */ |
| | | public String toString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString"); |
| | | |
| | | StringBuilder buffer = new StringBuilder(); |
| | | toString(buffer); |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("EntryChangeNotificationControl(changeType="); |
| | | buffer.append(changeType.toString()); |