import java.util.List;
import java.util.Map;
abstract class RoomRegistrySkel extends RoomRegistry implements ObjectImpl {
protected String key;
public RoomRegistrySkel() {
Address addr = ORB.instance().address();
ObjectReference ior = new ObjectReference ("IDL:Account:1.0", addr);
objectReference (ior);
ORB.instance().registerObjectImpl(ior.stringify(),this);
}
public RoomRegistrySkel(String key) {
Address addr = ORB.instance().address();
ObjectReference ior = new ObjectReference ("IDL:Account:1.0", addr);
ior.updateIor(key);
this.key = key;
objectReference (ior);
ORB.instance().registerObjectImpl(key,this);
}
public void invoke(ServerRequest req) {
boolean a = dispatch(req);
assert (a):"dispatch Error";
}
protected boolean dispatch(ServerRequest req) {
/**
* TODO: implementar as operacoes
*/
if (req.opname().equals("newRoom")) {
String name = req.getString();
//Adiciono o nome no xml de reply
ChatRoom chatroom = newRoom(name);
req.putObjectReferenceReply(chatroom.objectReference().getXmlReference());
return true;
}else if (req.opname().equals("findRoom")) {
String name = req.getString();
ChatRoom chatroom = findRoom(name);
if (chatroom == null) {
//echo("room ["+name+"] nao existe!");
req.putNullObjectReferenceReply();
}else{
req.putObjectReferenceReply(chatroom.objectReference().getXmlReference());
}
return true;
}else if (req.opname().equals("getRooms")) {
Map rooms = getRooms();
req.putSequenceReferenceReply(rooms);
return true;
}
return false;
}
public String getKey(){
return key;
}
}