//package fixmico; /** * <p>Title: ServerRequest.java </p> * <p>Description: </p> * * @author: Jessica Rogers */ import java.util.*; import java.io.*; public class ServerRequest { private PDUXml _requestPdu; private PDUXml _replyPdu; public ServerRequest(PDUXml requestPdu) { _requestPdu = requestPdu; _replyPdu = new PDUXml(requestPdu); } public String getReference() { return _requestPdu.getReference(); } public String opname() { return _requestPdu.opname(); } public void exceptionRaised() { _replyPdu.exceptionRaised(); } /** * metodo para envio do reply */ public void sendReply() { XmlReply xml_reply = (XmlReply) _replyPdu.xmlObject(); xml_reply.endResult(); xml_reply.endXml(); _replyPdu.send(_replyPdu.codec().toString()); } public int getInteger() { return _requestPdu.codec().getInteger(); } public String getString() { return _requestPdu.codec().getString(); } public void putInteger(int amount) { _requestPdu.codec().putInteger(amount); } public void beginSequenceReply(){ _replyPdu.codec().addField(2, "sequence", "BEGIN"); } public void endSequenceReply(){ _replyPdu.codec().addField(2, "sequence", "END"); } /////////////// // REPLY ////// /////////////// /** * Modifica o tipo do reply * Valores: error ou return */ public void setReplyType(String string) { _replyPdu.codec().setReplyType(string); } public void putIntegerReply(int amount) { _replyPdu.codec().putInteger(amount); } public void putStringReply(String value) { _replyPdu.codec().putString(value); } public void putBooleanReply(boolean result) { _replyPdu.codec().putBoolean(result); } public void putObjectReferenceReply(String xml_reference) { _replyPdu.codec().putObjectReference(xml_reference); } public void putNullObjectReferenceReply() { StringBuffer buffer_xml = new StringBuffer(); buffer_xml.append("<reference>\n"); buffer_xml.append(" <object>null</object>\n"); buffer_xml.append(" <host>null</host>\n"); buffer_xml.append(" <port>0</port>\n"); buffer_xml.append("</reference>\n"); _replyPdu.codec().putObjectReference(buffer_xml.toString()); } public void putSequenceReply(ArrayList sequence) { // TODO implementacao do metodo que escreve uma sequence no no xml de reply } public void putSequenceReferenceReply(Map hashmap) { beginSequenceReply(); Iterator iterator = hashmap.keySet().iterator(); while (iterator.hasNext()) { String name = (String) iterator.next(); //echo("Room name: "+name); Object obj = (Object) hashmap.get(name); //putStringReply(name); putObjectReferenceReply(obj.objectReference().getXmlReference()); } endSequenceReply(); } private void echo(String string) { System.out.println("[ServerRequest] "+string); } /** * TODO implementar metodos abaixo * @return */ public ArrayList getSequence() { // TODO criar implementacao do getSequence return null; } public List getSequenceString() { return _requestPdu.codec().getSequenceString(); } public String getObjectReference() { return _requestPdu.codec().getObjectReference(); } public String getObjectHost() { return _requestPdu.codec().getObjectHost(); } public String getObjectPort() { return _requestPdu.codec().getObjectPort(); } public String getObjectReferenceFromSequence() { return _requestPdu.codec().getObjectReferenceFromSequence(); } public List getSequenceReference() { // TODO Auto-generated method stub return _requestPdu.codec().getSequenceReference(); } /** * Retorna lista de struct * @return */ public List getStruct() { // TODO Auto-generated method stub return _requestPdu.codec().getSruct(); } /** * Retorna lista de struct sem a tag de inicio/fim do struc * @return */ public List getStructStriped() { // TODO Auto-generated method stub return _requestPdu.codec().getSructStriped(); } public String getStringStriped() { return _requestPdu.codec().getStringStriped(); } public XmlMapper getXmlMapper(String xml) { return _requestPdu.codec().getXmlMapper(xml); } }