001 /* 002 003 $Id: ResponseCollection.java,v 1.5 2003/04/30 20:49:17 culdesac Exp $ 004 005 */ 006 007 package sharpster.common; 008 009 import java.util.LinkedList; 010 import sharpster.common.Response; 011 import java.io.Serializable; 012 013 /** 014 * A general collection of responses which is used by modules in the local 015 * client and in the daemon. A ResponseCollection can contain serveral 016 * Response objects of different types. 017 */ 018 public class ResponseCollection implements Serializable { 019 020 /** 021 * Contains the response objects. 022 */ 023 private LinkedList responses; 024 025 /** 026 * The number of response objects in the collection. 027 */ 028 private boolean error; 029 030 /** 031 * Constructor 032 */ 033 public ResponseCollection() { 034 error = false; 035 responses = new LinkedList(); 036 } 037 038 /** 039 * Returns true if this response colletion contains 040 * responses that has error. 041 */ 042 public boolean hasError() { 043 return error; 044 } 045 046 /** 047 * Returns the number of Response objects in the collection. 048 */ 049 public int getResponseCount() { 050 return responses.size(); 051 } 052 053 /** 054 * Adds a new Response object to the collection. 055 */ 056 public void addResponse(Response response) { 057 if(response.isError()) error = true; 058 responses.add(response); 059 } 060 061 /** 062 *Appends a ResponseCollection to this collection. 063 */ 064 public void appendCollection(ResponseCollection collection) { 065 if(collection.hasError()) error = true; 066 responses.addAll(collection.responses); 067 } 068 069 /** 070 * Returns a specified response. 071 */ 072 public Response getResponse(int index) { 073 Response retval = null; 074 try { 075 retval = (Response)responses.get(index); 076 } catch (Exception e) { 077 retval = null; 078 } 079 return retval; 080 } 081 082 /** 083 * Prints the file collection to a readable string. 084 */ 085 public String toString() { 086 String msg = new String(); 087 for(int i=0;i<responses.size();i++) { 088 Response resp = (Response)responses.get(i); 089 msg += resp.toString() + "\n"; 090 } 091 return msg; 092 } 093 } 094 095 096 097 098 099 100 101 102