From 22094368c2865dcfb6daf8366425212b721a4657 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 05 Feb 2009 17:42:14 +0000
Subject: [PATCH] Merge ASN1 branch to trunk
---
opends/src/server/org/opends/server/controls/SubtreeDeleteControl.java | 94 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 88 insertions(+), 6 deletions(-)
diff --git a/opends/src/server/org/opends/server/controls/SubtreeDeleteControl.java b/opends/src/server/org/opends/server/controls/SubtreeDeleteControl.java
index 1b440f2..185a593 100644
--- a/opends/src/server/org/opends/server/controls/SubtreeDeleteControl.java
+++ b/opends/src/server/org/opends/server/controls/SubtreeDeleteControl.java
@@ -26,21 +26,103 @@
*/
package org.opends.server.controls;
-import org.opends.server.types.Control;
+
+
+import static org.opends.messages.ProtocolMessages.*;
import static org.opends.server.util.ServerConstants.*;
+import java.io.IOException;
+
+import org.opends.messages.Message;
+import org.opends.server.protocols.asn1.ASN1Writer;
+import org.opends.server.types.ByteString;
+import org.opends.server.types.Control;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.ResultCode;
+
+
+
/**
- * This class implements the subtree delete control.
+ * This class implements the subtree delete control defined in
+ * draft-armijo-ldap-treedelete. It makes it possible for clients to
+ * delete subtrees of entries.
*/
public class SubtreeDeleteControl extends Control
{
/**
- * Creates a new instance of Subtree Delete control with the
- * default settings.
+ * ControlDecoder implementation to decode this control from a
+ * ByteString.
*/
- public SubtreeDeleteControl()
+ private final static class Decoder implements
+ ControlDecoder<SubtreeDeleteControl>
{
- super(OID_SUBTREE_DELETE_CONTROL, false);
+ /**
+ * {@inheritDoc}
+ */
+ public SubtreeDeleteControl decode(boolean isCritical,
+ ByteString value) throws DirectoryException
+ {
+ if (value != null)
+ {
+ Message message =
+ ERR_SUBTREE_DELETE_INVALID_CONTROL_VALUE.get();
+ throw new DirectoryException(ResultCode.PROTOCOL_ERROR, message);
+ }
+
+ return new SubtreeDeleteControl(isCritical);
+ }
+
+
+
+ public String getOID()
+ {
+ return OID_SUBTREE_DELETE_CONTROL;
+ }
+
+ }
+
+
+
+ /**
+ * The Control Decoder that can be used to decode this control.
+ */
+ public static final ControlDecoder<SubtreeDeleteControl> DECODER =
+ new Decoder();
+
+
+
+ /**
+ * Creates a new subtree delete control.
+ *
+ * @param isCritical
+ * Indicates whether the control should be considered
+ * critical for the operation processing.
+ */
+ public SubtreeDeleteControl(boolean isCritical)
+ {
+ super(OID_SUBTREE_DELETE_CONTROL, isCritical);
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void writeValue(ASN1Writer writer) throws IOException
+ {
+ // Nothing to do.
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void toString(StringBuilder buffer)
+ {
+ buffer.append("SubtreeDeleteControl()");
}
}
--
Gitblit v1.10.0