/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2016, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.wps.xml.v200; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlType; import org.geotoolkit.ows.xml.v200.CodeType; import org.geotoolkit.ows.xml.v200.KeywordsType; import org.geotoolkit.ows.xml.v200.LanguageStringType; import org.geotoolkit.wps.xml.DataDescription; import org.geotoolkit.wps.xml.InputDescription; /** * Description of an input to a process. * * * In this use, the DescriptionType shall describe a process input. * * * <p>Java class for InputDescriptionType complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="InputDescriptionType"> * <complexContent> * <extension base="{http://www.opengis.net/wps/2.0}DescriptionType"> * <choice> * <element ref="{http://www.opengis.net/wps/2.0}DataDescription"/> * <element name="Input" type="{http://www.opengis.net/wps/2.0}InputDescriptionType" maxOccurs="unbounded"/> * </choice> * <attGroup ref="{http://www.w3.org/2001/XMLSchema}occurs"/> * </extension> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "InputDescriptionType", propOrder = { "dataDescription", "input" }) public class InputDescriptionType extends DescriptionType implements InputDescription { @XmlElementRef(name = "DataDescription", namespace = "http://www.opengis.net/wps/2.0", type = JAXBElement.class, required = false) protected JAXBElement<? extends DataDescriptionType> dataDescription; @XmlElement(name = "Input") protected List<InputDescriptionType> input; @XmlAttribute(name = "minOccurs") @XmlSchemaType(name = "nonNegativeInteger") protected Integer minOccurs; @XmlAttribute(name = "maxOccurs") @XmlSchemaType(name = "allNNI") protected String maxOccurs; public InputDescriptionType() { } public InputDescriptionType(CodeType identifier, List<LanguageStringType> title, List<LanguageStringType> _abstract, List<KeywordsType>keywords, Integer minOccur, String maxOccur, DataDescription dataDescription) { super(identifier, title, _abstract, keywords); this.minOccurs = minOccur; this.maxOccurs = maxOccur; final ObjectFactory factory = new ObjectFactory(); if (dataDescription instanceof ComplexDataType) { this.dataDescription = factory.createComplexData((ComplexDataType) dataDescription); } else if (dataDescription instanceof LiteralDataType) { this.dataDescription = factory.createLiteralData((LiteralDataType) dataDescription); } else if (dataDescription instanceof BoundingBoxData) { this.dataDescription = factory.createBoundingBoxData((BoundingBoxData) dataDescription); } else if (dataDescription != null) { throw new IllegalArgumentException("unecpected data description type:" + dataDescription.getClass().getName()); } } /** * Gets the value of the dataDescription property. * * @return * possible object is * {@link JAXBElement }{@code <}{@link BoundingBoxData }{@code >} * {@link JAXBElement }{@code <}{@link LiteralDataType }{@code >} * {@link JAXBElement }{@code <}{@link ComplexDataType }{@code >} * {@link JAXBElement }{@code <}{@link DataDescriptionType }{@code >} * */ public JAXBElement<? extends DataDescriptionType> getDataDescription() { return dataDescription; } /** * Sets the value of the dataDescription property. * * @param value * allowed object is * {@link JAXBElement }{@code <}{@link BoundingBoxData }{@code >} * {@link JAXBElement }{@code <}{@link LiteralDataType }{@code >} * {@link JAXBElement }{@code <}{@link ComplexDataType }{@code >} * {@link JAXBElement }{@code <}{@link DataDescriptionType }{@code >} * */ public void setDataDescription(JAXBElement<? extends DataDescriptionType> value) { this.dataDescription = value; } /** * Gets the value of the input property. * * Objects of the following type(s) are allowed in the list * {@link InputDescriptionType } * * */ public List<InputDescriptionType> getInput() { if (input == null) { input = new ArrayList<>(); } return this.input; } /** * Gets the value of the minOccurs property. * * @return * possible object is * {@link BigInteger } * */ public Integer getMinOccurs() { if (minOccurs == null) { return new Integer(1); } else { return minOccurs; } } /** * Sets the value of the minOccurs property. * * @param value * allowed object is * {@link BigInteger } * */ public void setMinOccurs(Integer value) { this.minOccurs = value; } /** * Gets the value of the maxOccurs property. * * @return * possible object is * {@link String } * */ public String getMaxOccurs() { if (maxOccurs == null) { return "1"; } else { return maxOccurs; } } /** * Sets the value of the maxOccurs property. * * @param value * allowed object is * {@link String } * */ public void setMaxOccurs(String value) { this.maxOccurs = value; } }