/**
 * 
 */
package org.client;

//import orchestra.oas.building.BuildingDocument;
//import orchestra.oas.building.BuildingType;

import orchestra.oas.building.BuildingStringDocument;

import orchestra.oas.building.OAGetMetaInformationResponseDocument;
import orchestra.oas.building.OAMIFASCapabilitiesType;
import orchestra.oas.building.OAMIServiceSpecificCapabilitiesType;


import org.apache.axis2.AxisFault;
import org.example.types.GMLSFEStub;


import java.io.File;

/**
 * @author wenjie ma
 *
 */
public class GMLSFClient {

    /**
     * @param args
     */
    public static void main(String[] args) {

            try {

            System.out.println("GMLSFClient, firing... des neu");
            String url = "http://localhost:8081/axis2/services/GMLSFE";
            GMLSFEStub stub = new GMLSFEStub(url);
                        
            //BuildingDocument gmlFC = BuildingDocument.Factory.parse(new File("test5.gml"));            
                        
            //System.out.println("validate: " +  gmlFC.validate());

            BuildingStringDocument huhu = BuildingStringDocument.Factory.newInstance();
            huhu.setBuildingString("huhu");
			OAGetMetaInformationResponseDocument retGMLFC = stub.getCapabilities(huhu);            
                        
            OAMIServiceSpecificCapabilitiesType spec = retGMLFC.getOAGetMetaInformationResponse().getFeatureMetaInformation().getOAMIServiceSpecificCapabilities();
            
            System.out.println("1 schematype spec"+spec.schemaType());
            System.out.println("2 schematype class"+spec.getClass());           
            
            if (spec instanceof OAMIFASCapabilitiesType){
            	OAMIFASCapabilitiesType fas = (OAMIFASCapabilitiesType) spec;
            	System.out.println("content "+fas.getSupportedFeatureTypes());
            }            

            System.out.println("Client returned");            

        } catch (AxisFault axisFault) {
            axisFault.printStackTrace();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
