// // Copyright 2010 Cinch Logic Pty Ltd. // // http://www.chililog.com // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package org.chililog.server.pubsub.jsonhttp; import java.io.ByteArrayOutputStream; import java.io.PrintStream; /** * Subscription Response API JSON binding object. Encapsulates the data for subscription log entries */ public class SubscriptionResponseAO { private String _messageType = "SubscriptionResponse"; private String _messageID = ""; private LogEntryAO _logEntry = null; private boolean _success = true; private String _errorMessage = null; private String _errorStackTrace = null; /** * Basic constructor */ public SubscriptionResponseAO() { return; } /** * Constructor for successful response * * @param messageID * Request message id for correlation */ public SubscriptionResponseAO(String messageID) { _messageID = messageID; } /** * Constructor for successful response with associated log entry * * @param messageID * Request message id for correlation * @param logEntry * Log entry to has been received */ public SubscriptionResponseAO(String messageID, LogEntryAO logEntry) { _messageID = messageID; _logEntry = logEntry; } /** * Constructor for error response * * @param messageID * Request message id for correlation * @param ex * Exception describing the error */ public SubscriptionResponseAO(String messageID, Throwable ex) { _success = false; _messageID = messageID; _errorMessage = ex.getMessage(); try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos, true, "UTF-8"); ex.printStackTrace(ps); _errorStackTrace = baos.toString("UTF-8"); } catch (Exception ex2) { _errorStackTrace = ex.toString(); } } /** * Returns the type of message: "SubscriptionResponse" */ public String getMessageType() { return _messageType; } public void setMessageType(String messageType) { _messageType = messageType; } /** * Returns the message id as set in the request */ public String getMessageID() { return _messageID; } public void setMessageID(String messageId) { _messageID = messageId; } /** * Returns the only entry received during subscription. */ public LogEntryAO getLogEntry() { return _logEntry; } public void setLogEntry(LogEntryAO logEntry) { _logEntry = logEntry; } /** * Returns if the request as identified by the message id has been processed successfully. If not, error details are * supplied. */ public boolean isSuccess() { return _success; } public void setSuccess(boolean success) { _success = success; } /** * In the event of an unsuccessful processing of a request, returns the error message. If successful, null is * returned. */ public String getErrorMessage() { return _errorMessage; } public void setErrorMessage(String errorMessage) { _errorMessage = errorMessage; } /** * Returns the stack trace in the event of an error, null if successful. */ public String getErrorStackTrace() { return _errorStackTrace; } public void setErrorStackTrace(String errorStackTrace) { _errorStackTrace = errorStackTrace; } }