Package org.geoserver.wps.xml

Source Code of org.geoserver.wps.xml.ComplexDataTypeBinding

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wps.xml;

import java.util.ArrayList;
import java.util.List;

import net.opengis.wps10.ComplexDataType;
import net.opengis.wps10.Wps10Factory;

import org.geoserver.wps.XMLEncoderDelegate;
import org.geotools.xml.ElementInstance;
import org.geotools.xml.Node;

public class ComplexDataTypeBinding extends org.geotools.wps.bindings.ComplexDataTypeBinding {

    public ComplexDataTypeBinding( Wps10Factory factory ) {
        super( factory );
    }

    @Override
    public List getProperties(Object object) throws Exception {
        ComplexDataType complex = (ComplexDataType) object;
        if ( !complex.getData().isEmpty() && complex.getData().get( 0 ) instanceof XMLEncoderDelegate ) {
            XMLEncoderDelegate delegate = (XMLEncoderDelegate) complex.getData().get( 0 );
            List properties = new ArrayList();
            properties.add( new Object[]{
                delegate.getProcessParameterIO().getElement(), delegate } );
           
            return properties;
        }
       
        return null;
    }
   
    @Override
    public Object parse(ElementInstance instance, Node node, Object value)
        throws Exception {
      ComplexDataType cd = (ComplexDataType) super.parse(instance, node, value);
     
      // handle non xml content as well
      if(cd.getData().size() == 0) {
        cd.getData().add(instance.getText().toString());
      }
     
      return cd;
    }
}
TOP

Related Classes of org.geoserver.wps.xml.ComplexDataTypeBinding

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.