/** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved * * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the License). You may not use this file except in * compliance with the License. * * You can obtain a copy of the License at * https://opensso.dev.java.net/public/CDDLv1.0.html or * opensso/legal/CDDLv1.0.txt * See the License for the specific language governing * permission and limitations under the License. * * When distributing Covered Code, include this CDDL * Header Notice in each file and include the License file * at opensso/legal/CDDLv1.0.txt. * If applicable, add the following below the CDDL Header, * with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * $Id: ServiceResponse.java,v 1.2 2009/11/13 21:54:35 ak138937 Exp $ * */ /* * Portions Copyrighted [2011] [ForgeRock AS] */ package com.sun.identity.diagnostic.base.core.service; import java.io.Serializable; import java.io.StringReader; import java.io.StringWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * This class represents the format of the service response object. * This should be passed to service that accepts request and process it. * Clients must pass this response while executing the service. * Upon successful execution, services place the result in this object. * */ public class ServiceResponse implements Serializable { private String status; private List result = null; private List warning = null; private List error = null; private List msg = null; private String opStr = ""; private StringWriter strWriter = new StringWriter(); private StringReader strReader = new StringReader(opStr); public static final String PASS = "msg-pass"; public static final String FAIL = "msg-fail"; /** Creates a new instance of ServiceResponse */ public ServiceResponse() { result = new ArrayList(); warning = new ArrayList(); error = new ArrayList(); msg = new ArrayList(); } /** * Creates new ServiceResponse with the given * status and result. * * @param status status of the performed service. * @param res result of the performed service. */ public ServiceResponse(String status, Object res) { this.status = status; result = new ArrayList(); result.add(res.toString()); } /** * Sets the status of the service execution. * * @param status status of the executed service. */ public void setStatus(String status) { this.status = status; } /** * Returns the status the executed service. * * @return status of the executed service. */ public String getStatus() { return getStatusResult((ArrayList)this.msg); } /** * Sets the result of the service execution. * * @param result result of the executed service. */ public void setResult(Object result) { this.result.add(result.toString()); } /** * Returns the result of the executed service. * * @return result of the executed service. */ public String getResult() { return toResponseStr(result); } /** * Returns the specific result of the executed service. * * @param idx Index of the result string. * @return specific result of the executed service. */ public String getResult(int idx) { return (String)this.result.get(idx); } /** * Sets the message of the service execution. * * @param msg message of the executed service. */ public void setMessage(Object msg) { this.msg.add(msg.toString()); } /** * Returns the message of the executed service. * * @return message of the executed service. */ public String getMessage() { return toResponseStr(msg); } /** * Sets the warning of the service execution. * * @param warning Warning of the executed service. */ public void setWarning(Object warning) { this.warning.add(warning.toString()); } /** * Returns the warning of the executed service. * * @return warning of the executed service. */ public String getWarning() { return toResponseStr(warning); } /** * Sets the error of the service execution. * * @param error warning of the executed service. */ public void setError(Object error) { this.error.add(error.toString()); } /** * Returns the error of the executed service. * * @return error of the executed service. */ public String getError() { return toResponseStr(error); } private String toResponseStr(List msg) { StringBuilder buff = new StringBuilder(); for (Iterator i = msg.iterator(); i.hasNext(); ) { String response = (String)i.next(); buff.append(response).append("\n"); } return buff.toString(); } private String getStatusResult(ArrayList inList){ String status = PASS; for (int h=0; h