import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ChatRoomStub extends ChatRoom {
public ChatRoomStub(ObjectReference ref){
objectReference(ref);
}
@Override
public String getName() {
// TODO Auto-generated method stub
Request req = createRequest ("getName");
req.beginParameter();
req.endParameter();
req.endXml();
req.invoke();
//Reply
String name = null;
name = req.getString();
req = null;
return name;
}
@Override
public Map getUsers() {
Request req = createRequest ("getUsers");
req.beginParameter();
req.endParameter();
req.endXml();
req.invoke();
//Reply
Map users = null;
users = new HashMap();
List references = req.getSequenceReference();
String xml_aux = "";
ObjectXmlReference obj_xml_aux = null;
ObjectReference obj_ref_aux = null;
for (int i=0; i < references.size(); i++){
//chatroom e instancia de chatroom de ChatRoomImpl
xml_aux = (String) references.get(i);
obj_xml_aux = objectReference().getObjectXml(xml_aux);
obj_ref_aux = new ObjectReference(obj_xml_aux.getObject(), obj_xml_aux.getHost(), obj_xml_aux.getPort());
users.put(String.valueOf(i), obj_ref_aux);
}
return users;
}
@Override
public boolean join(String name, ChatUser user) {
Request req = createRequest ("join");
req.beginParameter();
req.beginSequence();
req.addSequence("string", name);
req.addObjectReference(user.objectReference().getXmlReference());
req.endSequence();
req.endParameter();
req.endXml();
req.invoke();
//Reply
boolean result = false;
result = req.getBoolean();
req = null;
return result;
}
@Override
public boolean leave(String name) {
Request req = createRequest ("leave");
req.beginParameter();
req.addString(name);
req.endParameter();
req.endXml();
req.invoke();
//Reply
boolean result = false;
result = req.getBoolean();
req = null;
return result;
}
@Override
public void send(String name, String message) {
Request req = createRequest ("send");
req.beginParameter();
req.beginSequence();
req.addSequence("string", name);
req.addSequence("string", message);
req.endSequence();
req.endParameter();
req.endXml();
req.invoke();
req = null;
}
}