Package org.geotools.wcs.bindings

Source Code of org.geotools.wcs.bindings.ExtensionTypeBinding

package org.geotools.wcs.bindings;

import javax.xml.namespace.QName;

import net.opengis.wcs20.ExtensionItemType;
import net.opengis.wcs20.ExtensionType;
import net.opengis.wcs20.Wcs20Factory;

import org.eclipse.emf.common.util.EList;
import org.geotools.wcs.v2_0.WCS;
import org.geotools.xml.AbstractComplexBinding;
import org.geotools.xml.ElementInstance;
import org.geotools.xml.Node;

/**
* Custom binding for the open ended WCS:Extension element
*
* @author Andrea Aime - GeoSolutions
*
*/
public class ExtensionTypeBinding extends AbstractComplexBinding {

    public QName getTarget() {
        return WCS.ExtensionType;
    }

    public Class getType() {
        return ExtensionType.class;
    }

   
    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated modifiable
     */
    public Object parse(ElementInstance instance, Node node, Object value)
            throws Exception {
       
        ExtensionType et = Wcs20Factory.eINSTANCE.createExtensionType();
       
        EList<ExtensionItemType> contents = et.getContents();
        for(Object o : node.getChildren()) {
            Node child = (Node) o;
            String name = child.getComponent().getName();
            String namespace = child.getComponent().getNamespace();
            Object v = child.getValue();
           
            ExtensionItemType item = Wcs20Factory.eINSTANCE.createExtensionItemType();
            item.setName(name);
            item.setNamespace(namespace);
            if(v instanceof String) {
                item.setSimpleContent((String) v);
            } else {
                item.setObjectContent(v);
            }
           
            contents.add(item);
        }
       
        return et;
    }

    /*
     * (non-Javadoc)
     *
     * @see org.geotools.xml.AbstractComplexBinding#getExecutionMode()
     */
    @Override
    public int getExecutionMode() {
        return OVERRIDE;
    }
}
TOP

Related Classes of org.geotools.wcs.bindings.ExtensionTypeBinding

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.