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/protocols/ldap/ProtocolOp.java | 149 ++-----------------------------------------------
1 files changed, 6 insertions(+), 143 deletions(-)
diff --git a/opends/src/server/org/opends/server/protocols/ldap/ProtocolOp.java b/opends/src/server/org/opends/server/protocols/ldap/ProtocolOp.java
index 2d42f04..bd6192c 100644
--- a/opends/src/server/org/opends/server/protocols/ldap/ProtocolOp.java
+++ b/opends/src/server/org/opends/server/protocols/ldap/ProtocolOp.java
@@ -25,17 +25,10 @@
* Copyright 2006-2008 Sun Microsystems, Inc.
*/
package org.opends.server.protocols.ldap;
-import org.opends.messages.Message;
+import org.opends.server.protocols.asn1.ASN1Writer;
-
-import org.opends.server.protocols.asn1.ASN1Element;
-import org.opends.server.types.LDAPException;
-
-import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.protocols.ldap.LDAPConstants.*;
-import static org.opends.server.protocols.ldap.LDAPResultCode.*;
-
+import java.io.IOException;
/**
@@ -63,142 +56,12 @@
/**
- * Encodes this protocol op to an ASN.1 element suitable for including in an
- * LDAP message.
+ * Writes this protocol op to an ASN.1 output stream.
*
- * @return The ASN.1 element containing the encoded protocol op.
+ * @param stream The ASN.1 output stream to write to.
+ * @throws IOException If a problem occurs while writing to the stream.
*/
- public abstract ASN1Element encode();
-
-
-
- /**
- * Decodes the provided ASN.1 element as an LDAP protocol op.
- *
- * @param element The ASN.1 element containing the encoded LDAP protocol op.
- *
- * @return The LDAP protocol op decoded from the provided ASN.1 element.
- *
- * @throws LDAPException If a problem occurs while trying to decode the
- * provided ASN.1 element as an LDAP protocol op.
- */
- public static ProtocolOp decode(ASN1Element element)
- throws LDAPException
- {
- if (element == null)
- {
- Message message = ERR_LDAP_PROTOCOL_OP_DECODE_NULL.get();
- throw new LDAPException(PROTOCOL_ERROR, message);
- }
-
- switch (element.getType())
- {
- case OP_TYPE_UNBIND_REQUEST: // 0x42
- return UnbindRequestProtocolOp.decodeUnbindRequest(element);
- case 0x43: // 0x43
- case 0x44: // 0x44
- case 0x45: // 0x45
- case 0x46: // 0x46
- case 0x47: // 0x47
- case 0x48: // 0x48
- case 0x49: // 0x49
- Message message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- case OP_TYPE_DELETE_REQUEST: // 0x4A
- return DeleteRequestProtocolOp.decodeDeleteRequest(element);
- case 0x4B: // 0x4B
- case 0x4C: // 0x4C
- case 0x4D: // 0x4D
- case 0x4E: // 0x4E
- case 0x4F: // 0x4F
- message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- case OP_TYPE_ABANDON_REQUEST: // 0x50
- return AbandonRequestProtocolOp.decodeAbandonRequest(element);
- case 0x51: // 0x51
- case 0x52: // 0x52
- case 0x53: // 0x53
- case 0x54: // 0x54
- case 0x55: // 0x55
- case 0x56: // 0x56
- case 0x57: // 0x57
- case 0x58: // 0x58
- case 0x59: // 0x59
- case 0x5A: // 0x5A
- case 0x5B: // 0x5B
- case 0x5C: // 0x5C
- case 0x5D: // 0x5D
- case 0x5E: // 0x5E
- case 0x5F: // 0x5F
- message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- case OP_TYPE_BIND_REQUEST: // 0x60
- return BindRequestProtocolOp.decodeBindRequest(element);
- case OP_TYPE_BIND_RESPONSE: // 0x61
- return BindResponseProtocolOp.decodeBindResponse(element);
- case 0x62: // 0x62
- message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- case OP_TYPE_SEARCH_REQUEST: // 0x63
- return SearchRequestProtocolOp.decodeSearchRequest(element);
- case OP_TYPE_SEARCH_RESULT_ENTRY: // 0x64
- return SearchResultEntryProtocolOp.decodeSearchEntry(element);
- case OP_TYPE_SEARCH_RESULT_DONE: // 0x65
- return SearchResultDoneProtocolOp.decodeSearchDone(element);
- case OP_TYPE_MODIFY_REQUEST: // 0x66
- return ModifyRequestProtocolOp.decodeModifyRequest(element);
- case OP_TYPE_MODIFY_RESPONSE: // 0x67
- return ModifyResponseProtocolOp.decodeModifyResponse(element);
- case OP_TYPE_ADD_REQUEST: // 0x68
- return AddRequestProtocolOp.decodeAddRequest(element);
- case OP_TYPE_ADD_RESPONSE: // 0x69
- return AddResponseProtocolOp.decodeAddResponse(element);
- case 0x6A: // 0x6A
- message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- case OP_TYPE_DELETE_RESPONSE: // 0x6B
- return DeleteResponseProtocolOp.decodeDeleteResponse(element);
- case OP_TYPE_MODIFY_DN_REQUEST: // 0x6C
- return ModifyDNRequestProtocolOp.decodeModifyDNRequest(element);
- case OP_TYPE_MODIFY_DN_RESPONSE: // 0x6D
- return ModifyDNResponseProtocolOp.decodeModifyDNResponse(element);
- case OP_TYPE_COMPARE_REQUEST: // 0x6E
- return CompareRequestProtocolOp.decodeCompareRequest(element);
- case OP_TYPE_COMPARE_RESPONSE: // 0x6F
- return CompareResponseProtocolOp.decodeCompareResponse(element);
- case 0x70: // 0x70
- case 0x71: // 0x71
- case 0x72: // 0x72
- message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- case OP_TYPE_SEARCH_RESULT_REFERENCE: // 0x73
- return SearchResultReferenceProtocolOp.decodeSearchReference(element);
- case 0x74: // 0x74
- case 0x75: // 0x75
- case 0x76: // 0x76
- message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- case OP_TYPE_EXTENDED_REQUEST: // 0x77
- return ExtendedRequestProtocolOp.decodeExtendedRequest(element);
- case OP_TYPE_EXTENDED_RESPONSE: // 0x78
- return ExtendedResponseProtocolOp.decodeExtendedResponse(element);
- case OP_TYPE_INTERMEDIATE_RESPONSE: // 0x79
- return
- IntermediateResponseProtocolOp.decodeIntermediateResponse(element);
- default:
- message =
- ERR_LDAP_PROTOCOL_OP_DECODE_INVALID_TYPE.get(element.getType());
- throw new LDAPException(PROTOCOL_ERROR, message);
- }
- }
-
+ public abstract void write(ASN1Writer stream) throws IOException;
/**
--
Gitblit v1.10.0