import java.lang.reflect.*;
import java.net.URL;
import gw.*;

public class GetLocation
{
    public static double TIMEOUT = 2.0;
    private GWPort proxy;

    GetLocation(String gateway)
    {
        try {
            URL portURL = new URL("http://restsoap:AIIT@" + gateway + "/gw/soap");
            GWServiceLocator locator = new GWServiceLocator();
            proxy = locator.getGWPort(portURL);
        }
        catch (Exception e) {
            e.printStackTrace();
            System.exit(2);
        }
    }

    public void get(String name, String addr)
    {
        GW__MetaData_Result[] results;

        try {
            results = proxy.metadataGet(addr, name);
            for (int i = 0; i < results.length; i++) {
                System.out.println( "Mote " + results[i].getAddr() +
                                    " " + name + " " + results[i].getValue() ); 
            }
        }
        catch (Exception e) {
            e.printStackTrace();
            System.exit(2);
        }
    }

    public static void main(String [] args)
    {
        if (args.length != 1 && args.length != 2) {
            System.out.println("Usage: java GetLocation gateway [mote]");
            System.exit(3);
        }
        String gateway = args[0];
        String attrName;
        String mote;
        if (args.length == 1)
            mote = "ffffffffffffffff";
        else
            mote = args[1];
        GetLocation get = new GetLocation(gateway);

        attrName = "map-x";
        get.get(attrName, mote);

        attrName = "map-y";
        get.get(attrName, mote);
    }
}