mev-4.0.01/source/org/tigr/remote/protocol/serializer/RequestSerializerImpl.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2 Copyright @ 1999-2003, The Institute for Genomic Research (TIGR).
2 26 Feb 07 jari 3 All rights reserved.
2 26 Feb 07 jari 4 */
2 26 Feb 07 jari 5 /*
2 26 Feb 07 jari 6  * $RCSfile: RequestSerializerImpl.java,v $
2 26 Feb 07 jari 7  * $Revision: 1.3 $
2 26 Feb 07 jari 8  * $Date: 2005/03/10 15:35:13 $
2 26 Feb 07 jari 9  * $Author: braistedj $
2 26 Feb 07 jari 10  * $State: Exp $
2 26 Feb 07 jari 11  */
2 26 Feb 07 jari 12 package org.tigr.remote.protocol.serializer;
2 26 Feb 07 jari 13
2 26 Feb 07 jari 14 import java.io.OutputStream;
2 26 Feb 07 jari 15 import java.io.PrintStream;
2 26 Feb 07 jari 16
2 26 Feb 07 jari 17 import org.tigr.remote.protocol.Request;
2 26 Feb 07 jari 18 import org.tigr.remote.protocol.StartJob;
2 26 Feb 07 jari 19 import org.tigr.remote.protocol.StartingJob;
2 26 Feb 07 jari 20 import org.tigr.remote.protocol.StartingJobVisitor;
2 26 Feb 07 jari 21 import org.tigr.remote.protocol.StopJob;
2 26 Feb 07 jari 22
2 26 Feb 07 jari 23 class RequestSerializerImpl extends RequestSerializer {
2 26 Feb 07 jari 24
2 26 Feb 07 jari 25     /**
2 26 Feb 07 jari 26      * Constructs a <code>RequestSerializerImpl</code>.
2 26 Feb 07 jari 27      */
2 26 Feb 07 jari 28     public RequestSerializerImpl() {
2 26 Feb 07 jari 29     }
2 26 Feb 07 jari 30
2 26 Feb 07 jari 31     /**
2 26 Feb 07 jari 32      * Serialize a request into specified output stream.
2 26 Feb 07 jari 33      */
2 26 Feb 07 jari 34     public void serializeRequest( Request req, OutputStream out ) throws SerializerException {
2 26 Feb 07 jari 35         PrintStream p = new PrintStream( out );
2 26 Feb 07 jari 36         XMLIndent ind = new XMLIndent();
2 26 Feb 07 jari 37         p.println("<?xml version=\"1.0\"?>");
2 26 Feb 07 jari 38         p.println("<request>");
2 26 Feb 07 jari 39         ind.inc();
2 26 Feb 07 jari 40         StartingJobSerializer ser = new StartingJobSerializer( p, ind );
2 26 Feb 07 jari 41         StartingJob job = req.getJob();
2 26 Feb 07 jari 42         if (job != null) {
2 26 Feb 07 jari 43             job.accept( ser );
2 26 Feb 07 jari 44         }
2 26 Feb 07 jari 45         ind.dec();
2 26 Feb 07 jari 46         p.println("</request>");
2 26 Feb 07 jari 47     }
2 26 Feb 07 jari 48
2 26 Feb 07 jari 49     /**
2 26 Feb 07 jari 50      * Start and stop jobs serializer.
2 26 Feb 07 jari 51      */
2 26 Feb 07 jari 52     class StartingJobSerializer implements StartingJobVisitor {
2 26 Feb 07 jari 53
2 26 Feb 07 jari 54         /**
2 26 Feb 07 jari 55          * Constructs a <code>StartingJobSerializer</code> with specified 
2 26 Feb 07 jari 56          * print stream.
2 26 Feb 07 jari 57          */
2 26 Feb 07 jari 58         public StartingJobSerializer( PrintStream out, XMLIndent ind ) {
2 26 Feb 07 jari 59             m_out = out;
2 26 Feb 07 jari 60             m_ind = ind;
2 26 Feb 07 jari 61         }
2 26 Feb 07 jari 62
2 26 Feb 07 jari 63         /**
2 26 Feb 07 jari 64          * Serializes a start job.
2 26 Feb 07 jari 65          */
2 26 Feb 07 jari 66         public void visitStartJob( StartJob job ) {
2 26 Feb 07 jari 67             m_ind.print( m_out );
2 26 Feb 07 jari 68             m_out.println("<start-job id=\"" + Util.escape( job.getId() ) +
2 26 Feb 07 jari 69                           "\"  type=\"" + Util.escape( job.getType() ) + "\"   >"  );
2 26 Feb 07 jari 70             m_ind.inc(); m_ind.print( m_out );
2 26 Feb 07 jari 71             m_out.println("<job-data>");
2 26 Feb 07 jari 72
2 26 Feb 07 jari 73             BreakFilterStream bfs = new BreakFilterStream( m_out );
2 26 Feb 07 jari 74             PrintStream out = new PrintStream( bfs );
2 26 Feb 07 jari 75             MAGESerializer serializer = new MAGESerializer( out );
2 26 Feb 07 jari 76             serializer.serialize( job.getData().getData() );
2 26 Feb 07 jari 77             out.flush();
2 26 Feb 07 jari 78             out = null;
2 26 Feb 07 jari 79             m_out.println();
2 26 Feb 07 jari 80             m_out.println("</job-data>");
2 26 Feb 07 jari 81             m_ind.dec();
2 26 Feb 07 jari 82             m_ind.print( m_out );
2 26 Feb 07 jari 83             m_out.println("</start-job>");
2 26 Feb 07 jari 84         }
2 26 Feb 07 jari 85
2 26 Feb 07 jari 86         /**
2 26 Feb 07 jari 87          * Serializes a stop job.
2 26 Feb 07 jari 88          */
2 26 Feb 07 jari 89         public void visitStopJob( StopJob job )  {
2 26 Feb 07 jari 90             m_ind.print( m_out );
2 26 Feb 07 jari 91             m_out.println("<stop-job id=\"" + Util.escape( job.getId() ) + "\"/>"  );
2 26 Feb 07 jari 92         }
2 26 Feb 07 jari 93
2 26 Feb 07 jari 94         private PrintStream m_out;
2 26 Feb 07 jari 95         private XMLIndent   m_ind;
2 26 Feb 07 jari 96     }
2 26 Feb 07 jari 97 }
2 26 Feb 07 jari 98