/** Licensed Materials - Property of IBM IBM Cognos Products: DOCS (C) Copyright IBM Corp. 2005 US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /** * BiBusHeaderException.java * * Copyright (C) 2005 Cognos ULC, an IBM Company. All rights reserved. * Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated). */ // sn_dg_sdk_headerexception_start_1 import org.apache.axis.client.Stub; import org.apache.axis.message.SOAPHeaderElement; import javax.xml.namespace.QName; import com.cognos.developer.schemas.bibus._3.BiBusHeader; import com.cognos.developer.schemas.bibus._3.CAMException; import com.cognos.developer.schemas.bibus._3.Message; import com.cognos.developer.schemas.bibus._3.PromptInfo; import com.cognos.developer.schemas.bibus._3.ContentManagerService_PortType; /** * Extract the interesting bits from a biBusHeader after a biBusHeader * fault. */ public class BiBusHeaderException { private CAMException _exception = null; /** * Create a BiBusHeaderException object. * * @param cmService ContentManagerService object in use during the last exception. */ public BiBusHeaderException(ContentManagerService_PortType cmService) { // Pull the CAM exception out of the biBusHeader. // BiBusHeader bibus_header = // ((Stub)cmService).getHeaderObject("", "biBusHeader"); // BiBusHeader bibus = (BiBusHeader)bibus_header.getObjectValue(); // _exception = bibus.getCAM().getException(); // try { // SOAPHeaderElement temp = ((Stub)cmService).getResponseHeader("http://developer.cognos.com/schemas/bibus/3/", "biBusHeader"); // BiBusHeader bibus_header = (BiBusHeader)temp.getValueAsType(new QName("http://developer.cognos.com/schemas/bibus/3/", "biBusHeader")); // ((Stub)cmService).setHeader("http://developer.cognos.com/schemas/bibus/3/", "biBusHeader", bibus_header); // } // catch(Exception e) { // } } /** * Get the Severity string from this BiBusHeaderException. * * @return The Serverity string (a severityEnum in string form). */ public String getSeverity() { return new String(_exception.getSeverity().toString()); } /** * Get the errorCodeString from this BiBusHeaderException. * * @return The errorCodeString. */ public String getErrorCode() { return new String(_exception.getErrorCodeString()); } /** * Get the details (messageString), if any, from this BiBusHeaderException. * * @return An array of strings containing the detail messages. */ public String[] getDetails() { Message msg[] = _exception.getMessages(); if(msg == null) { return new String[] {"null"}; } String retval[] = new String[msg.length]; for (int idx = 0; idx < msg.length; idx++) { retval[idx] = new String(msg[idx].getMessageString()); } return retval; } /** * Get the promptInfo (and useful captions/displayObjects inside) to * facilitate prompting the user, if this is a recoverable exception. * * @return The promptInfo object from the exception. */ public PromptInfo getPromptInfo() { return _exception.getPromptInfo(); } /** * Convert this BiBusHeaderException into a string for printing. * * @return A string representation of the BiBusHeaderException. */ public String toString() { StringBuffer str = new StringBuffer(); str.append("Severity :").append(getSeverity()).append("\n"); str.append("ErrorCode :").append(getErrorCode()).append("\n"); str.append("Details :\n"); String details[] = getDetails(); for (int i = 0; i < details.length; i++) { str.append("\t").append(details[i]).append("\n"); } return str.toString(); } /** * Convert a biBusHeader exception into a BiBusHeaderException string. * * This is the same as creating a BiBusHeaderException and calling * its toString() method. * * @param crn The Service object that experienced the exception. * @return A string representation. */ static public String convertToString(ContentManagerService_PortType cmService) { BiBusHeaderException exception = new BiBusHeaderException(cmService); return exception.toString(); } } // sn_dg_sdk_headerexception_end_1