/**
* <copyright>
* </copyright>
*
*
*/
package org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug;
public class MtextDebugCommunicationHelper {
public void sendEvent(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug.MtextDebugMessage message, java.io.PrintStream stream) {
synchronized (stream) {
stream.println(message.serialize());
}
}
/**
* Sends a message using the given stream and waits for an answer.
*
* @param messageType the type of message to send
* @param stream the stream to send the message to
* @param reader the reader to obtain the answer from
* @param parameters additional parameter to send
*
* @return the answer that is received
*/
public org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug.MtextDebugMessage sendAndReceive(org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug.MtextDebugMessage message, java.io.PrintStream stream, java.io.BufferedReader reader) {
synchronized (stream) {
sendEvent(message, stream);
org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug.MtextDebugMessage response = receive(reader);
return response;
}
}
/**
* Receives a message from the given reader. This method block until a message has
* arrived.
*
* @param reader the read to obtain the message from
*
* @return the received message
*/
public org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug.MtextDebugMessage receive(java.io.BufferedReader reader) {
try {
String response = reader.readLine();
if (response == null) {
return null;
}
org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug.MtextDebugMessage receivedMessage = org.feature.multi.perspective.mapping.viewmapping.resource.mtext.debug.MtextDebugMessage.deserialize(response);
return receivedMessage;
} catch (java.io.IOException e) {
return null;
}
}
}