001 /* 002 * Copyright 2008-2015 UnboundID Corp. 003 * All Rights Reserved. 004 */ 005 /* 006 * Copyright (C) 2015 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.unboundidds.extensions; 022 023 024 025 import com.unboundid.ldap.sdk.Control; 026 import com.unboundid.ldap.sdk.ExtendedResult; 027 import com.unboundid.ldap.sdk.ResultCode; 028 import com.unboundid.util.NotMutable; 029 import com.unboundid.util.ThreadSafety; 030 import com.unboundid.util.ThreadSafetyLevel; 031 032 import static com.unboundid.ldap.sdk.unboundidds.extensions.ExtOpMessages.*; 033 034 035 036 /** 037 * <BLOCKQUOTE> 038 * <B>NOTE:</B> This class is part of the Commercial Edition of the UnboundID 039 * LDAP SDK for Java. It is not available for use in applications that 040 * include only the Standard Edition of the LDAP SDK, and is not supported for 041 * use in conjunction with non-UnboundID products. 042 * </BLOCKQUOTE> 043 * This class provides an implementation of the interactive transaction aborted 044 * extended result, which is used as an unsolicited notification to indicate 045 * that the server has aborted an interactive transaction without the client's 046 * explicit request. 047 */ 048 @NotMutable() 049 @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE) 050 public final class InteractiveTransactionAbortedExtendedResult 051 extends ExtendedResult 052 { 053 /** 054 * The OID (1.3.6.1.4.1.30221.2.6.5) for the interactive transaction aborted 055 * extended result. 056 */ 057 public static final String INTERACTIVE_TRANSACTION_ABORTED_RESULT_OID = 058 "1.3.6.1.4.1.30221.2.6.5"; 059 060 061 062 /** 063 * The serial version UID for this serializable class. 064 */ 065 private static final long serialVersionUID = 296814913448182605L; 066 067 068 069 /** 070 * Creates a new instance of this interactive transaction aborted extended 071 * result from the provided generic extended result. 072 * 073 * @param extendedResult The extended result to use to create this 074 * interactive transaction aborted extended result. 075 */ 076 public InteractiveTransactionAbortedExtendedResult( 077 final ExtendedResult extendedResult) 078 { 079 super(extendedResult); 080 } 081 082 083 084 /** 085 * Creates a new instance of this interactive transaction aborted extended 086 * result from the provided information. 087 * 088 * @param messageID The message ID for the LDAP message that is 089 * associated with this LDAP result. 090 * @param resultCode The result code from the response. 091 * @param diagnosticMessage The diagnostic message from the response, if 092 * available. 093 * @param matchedDN The matched DN from the response, if available. 094 * @param referralURLs The set of referral URLs from the response, if 095 * available. 096 * @param responseControls The set of controls from the response, if 097 * available. 098 */ 099 public InteractiveTransactionAbortedExtendedResult( 100 final int messageID, final ResultCode resultCode, 101 final String diagnosticMessage, final String matchedDN, 102 final String[] referralURLs, final Control[] responseControls) 103 { 104 super(messageID, resultCode, diagnosticMessage, matchedDN, referralURLs, 105 INTERACTIVE_TRANSACTION_ABORTED_RESULT_OID, null, responseControls); 106 } 107 108 109 110 /** 111 * {@inheritDoc} 112 */ 113 @Override() 114 public String getExtendedResultName() 115 { 116 return INFO_EXTENDED_RESULT_NAME_INTERACTIVE_TXN_ABORTED.get(); 117 } 118 119 120 121 /** 122 * Appends a string representation of this extended result to the provided 123 * buffer. 124 * 125 * @param buffer The buffer to which a string representation of this 126 * extended result will be appended. 127 */ 128 @Override() 129 public void toString(final StringBuilder buffer) 130 { 131 buffer.append("InteractiveTransactionAbortedExtendedResult(resultCode="); 132 buffer.append(getResultCode()); 133 134 final int messageID = getMessageID(); 135 if (messageID >= 0) 136 { 137 buffer.append(", messageID="); 138 buffer.append(messageID); 139 } 140 141 final String diagnosticMessage = getDiagnosticMessage(); 142 if (diagnosticMessage != null) 143 { 144 buffer.append(", diagnosticMessage='"); 145 buffer.append(diagnosticMessage); 146 buffer.append('\''); 147 } 148 149 final String matchedDN = getMatchedDN(); 150 if (matchedDN != null) 151 { 152 buffer.append(", matchedDN='"); 153 buffer.append(matchedDN); 154 buffer.append('\''); 155 } 156 157 final String[] referralURLs = getReferralURLs(); 158 if (referralURLs.length > 0) 159 { 160 buffer.append(", referralURLs={"); 161 for (int i=0; i < referralURLs.length; i++) 162 { 163 if (i > 0) 164 { 165 buffer.append(", "); 166 } 167 168 buffer.append('\''); 169 buffer.append(referralURLs[i]); 170 buffer.append('\''); 171 } 172 buffer.append('}'); 173 } 174 175 buffer.append(", oid="); 176 buffer.append(INTERACTIVE_TRANSACTION_ABORTED_RESULT_OID); 177 178 final Control[] responseControls = getResponseControls(); 179 if (responseControls.length > 0) 180 { 181 buffer.append(", responseControls={"); 182 for (int i=0; i < responseControls.length; i++) 183 { 184 if (i > 0) 185 { 186 buffer.append(", "); 187 } 188 189 buffer.append(responseControls[i]); 190 } 191 buffer.append('}'); 192 } 193 194 buffer.append(')'); 195 } 196 }