001 /*
002 * Copyright 2009-2016 UnboundID Corp.
003 * All Rights Reserved.
004 */
005 /*
006 * Copyright (C) 2009-2016 UnboundID Corp.
007 *
008 * This program is free software; you can redistribute it and/or modify
009 * it under the terms of the GNU General Public License (GPLv2 only)
010 * or the terms of the GNU Lesser General Public License (LGPLv2.1 only)
011 * as published by the Free Software Foundation.
012 *
013 * This program is distributed in the hope that it will be useful,
014 * but WITHOUT ANY WARRANTY; without even the implied warranty of
015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
016 * GNU General Public License for more details.
017 *
018 * You should have received a copy of the GNU General Public License
019 * along with this program; if not, see <http://www.gnu.org/licenses>.
020 */
021 package com.unboundid.ldap.sdk.migrate.ldapjdk;
022
023
024
025 import com.unboundid.asn1.ASN1OctetString;
026 import com.unboundid.ldap.sdk.ExtendedResult;
027 import com.unboundid.util.Extensible;
028 import com.unboundid.util.NotMutable;
029 import com.unboundid.util.ThreadSafety;
030 import com.unboundid.util.ThreadSafetyLevel;
031
032
033
034 /**
035 * This class provides a data structure which represents an LDAP extended
036 * response.
037 * <BR><BR>
038 * This class is primarily intended to be used in the process of updating
039 * applications which use the Netscape Directory SDK for Java to switch to or
040 * coexist with the UnboundID LDAP SDK for Java. For applications not written
041 * using the Netscape Directory SDK for Java, the {@link ExtendedResult} class
042 * should be used instead.
043 */
044 @Extensible()
045 @NotMutable()
046 @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE)
047 public class LDAPExtendedResponse
048 extends LDAPResponse
049 {
050 /**
051 * The serial version UID for this serializable class.
052 */
053 private static final long serialVersionUID = 7956345950545720834L;
054
055
056
057 // The extended result for this LDAP extended response.
058 private final ExtendedResult extendedResult;
059
060
061
062 /**
063 * Creates a new LDAP extended response from the provided
064 * {@link ExtendedResult} object.
065 *
066 * @param extendedResult The {@code ExtendedResult} to use to create this
067 * LDAP extended response.
068 */
069 public LDAPExtendedResponse(final ExtendedResult extendedResult)
070 {
071 super(extendedResult);
072
073 this.extendedResult = extendedResult;
074 }
075
076
077
078 /**
079 * Retrieves the OID for this LDAP extended response, if any.
080 *
081 * @return The OID for this LDAP extended response, or {@code null} if there
082 * is none.
083 */
084 public String getID()
085 {
086 return extendedResult.getOID();
087 }
088
089
090
091 /**
092 * Retrieves the value for this LDAP extended response, if any.
093 *
094 * @return The value for this LDAP extended response, or {@code null} if
095 * there is none.
096 */
097 public byte[] getValue()
098 {
099 final ASN1OctetString value = extendedResult.getValue();
100 if (value == null)
101 {
102 return null;
103 }
104 else
105 {
106 return value.getValue();
107 }
108 }
109
110
111
112 /**
113 * Retrieves an {@link ExtendedResult} object that is the equivalent of this
114 * LDAP extended response.
115 *
116 * @return An {@code ExtendedResult} object that is the equivalent of this
117 * LDAP extended response.
118 */
119 public final ExtendedResult toExtendedResult()
120 {
121 return extendedResult;
122 }
123
124
125
126 /**
127 * Retrieves a string representation of this LDAP extended response.
128 *
129 * @return A string representation of this LDAP extended response.
130 */
131 @Override()
132 public String toString()
133 {
134 return extendedResult.toString();
135 }
136 }