import java.lang.reflect.*;
import java.util.Map;
public class TestReflection {
public static void main(String[] args) {
String server_host = "localhost";
int server_port = 5555;
if (args.length == 1){
try {
server_port = Integer.valueOf(args[0]);
}catch(Exception e){
System.out.println("erro na conversao da porta. Sera usada a porta 5555");
server_port = 5555;
}
}
TCPAddress addr = new TCPAddress (server_host, server_port);
ORB.instance().address(addr);
String ior = "";
ObjectImpl obj_impl = null;
//obj_impl = new RoomRegistryImpl();
String classname = "RoomRegistryImpl";
Class c = null;
try {
c = Class.forName(classname);
Class partypes[] = new Class[0];
Constructor ct = c.getConstructor(partypes);
Object arglist[] = new Object[0];
obj_impl = (ObjectImpl) ct.newInstance(arglist);
Map temp = obj_impl.filhos();
System.out.println(temp);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("------");
classname = classname.replaceAll("Impl", "Stub");
System.out.println(classname);
Class clazz = null;
try {
clazz = Class.forName(classname);
Class[] parameter = new Class[1];
parameter[0] = ObjectReference.class;
ObjectReference ref = new ObjectReference("aaa",server_host,String.valueOf(server_port));
Constructor ct = clazz.getConstructor(parameter);
ObjectReference arglist[] = new ObjectReference[1];
arglist[0] = ref;
Object new_proxy = (Object) ct.newInstance(arglist);
Method[] methods = clazz.getDeclaredMethods();
Method selectedMethod = null;
for (int i = 0; i < methods.length; i++){
System.out.println(methods[i]);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}