| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.protocols.asn1; |
| | | |
| | | |
| | | |
| | | import org.opends.server.types.ByteString; |
| | | 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.protocols.asn1.ASN1Constants.*; |
| | |
| | | extends ASN1Element |
| | | implements ByteString |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.protocols.asn1.ASN1OctetString"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(UNIVERSAL_OCTET_STRING_TYPE); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | super(type); |
| | | |
| | | assert debugConstructor(CLASS_NAME, byteToHex(type)); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | super(UNIVERSAL_OCTET_STRING_TYPE, value); |
| | | |
| | | assert debugConstructor(CLASS_NAME, bytesToHex(value)); |
| | | |
| | | this.stringValue = null; |
| | | } |
| | |
| | | { |
| | | super(UNIVERSAL_OCTET_STRING_TYPE, getBytes(stringValue)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(stringValue)); |
| | | |
| | | this.stringValue = stringValue; |
| | | } |
| | |
| | | { |
| | | super(type, value); |
| | | |
| | | assert debugConstructor(CLASS_NAME, byteToHex(type), bytesToHex(value)); |
| | | |
| | | this.stringValue = null; |
| | | } |
| | |
| | | { |
| | | super(type, getBytes(stringValue)); |
| | | |
| | | assert debugConstructor(CLASS_NAME, byteToHex(type), |
| | | String.valueOf(stringValue)); |
| | | |
| | | this.stringValue = stringValue; |
| | | } |
| | |
| | | */ |
| | | public String stringValue() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringValue"); |
| | | |
| | | if (stringValue == null) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "stringValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | stringValue = new String(value()); |
| | | } |
| | |
| | | */ |
| | | public void stringValue(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "stringValue", "java.lang.StringBuilder"); |
| | | |
| | | if (stringValue != null) |
| | | { |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "stringValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | s = new String(value, i, (length-i)); |
| | | s = new String(value, i, (length - i)); |
| | | } |
| | | |
| | | buffer.append(s); |
| | |
| | | */ |
| | | public void setValue(String stringValue) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", String.valueOf(stringValue)); |
| | | |
| | | if (stringValue == null) |
| | | { |
| | |
| | | */ |
| | | public void setValue(byte[] value) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "setValue", bytesToHex(value)); |
| | | |
| | | if (value == null) |
| | | { |
| | |
| | | public static ASN1OctetString decodeAsOctetString(ASN1Element element) |
| | | throws ASN1Exception |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeAsOctetString", |
| | | String.valueOf(element)); |
| | | |
| | | if (element == null) |
| | | { |
| | |
| | | public static ASN1OctetString decodeAsOctetString(byte[] encodedElement) |
| | | throws ASN1Exception |
| | | { |
| | | assert debugEnter(CLASS_NAME, "decodeAsOctetString", |
| | | bytesToHex(encodedElement)); |
| | | |
| | | // First make sure that the array is not null and long enough to contain |
| | | // a valid ASN.1 element. |
| | |
| | | */ |
| | | public ASN1OctetString duplicate() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "duplicate"); |
| | | |
| | | byte[] value = value(); |
| | | int length = value.length; |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append(stringValue()); |
| | | } |
| | |
| | | */ |
| | | public void toString(StringBuilder buffer, int indent) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder", |
| | | String.valueOf(indent)); |
| | | |
| | | StringBuilder indentBuf = new StringBuilder(indent); |
| | | for (int i=0 ; i < indent; i++) |
| | |
| | | */ |
| | | public ASN1OctetString toASN1OctetString() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toASN1OctetString"); |
| | | |
| | | return this; |
| | | } |