/*---------------- FILE HEADER ------------------------------------------
This file is part of deegree.
Copyright (C) 2001-2005 by:
EXSE, Department of Geography, University of Bonn
http://www.giub.uni-bonn.de/exse/
lat/lon GmbH
http://www.lat-lon.de
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.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Contact:
Andreas Poth
lat/lon GmbH
Aennchenstraße 19
53177 Bonn
Germany
E-Mail: poth@lat-lon.de
Prof. Dr. Klaus Greve
Department of Geography
University of Bonn
Meckenheimer Allee 166
53115 Bonn
Germany
E-Mail: greve@giub.uni-bonn.de
---------------------------------------------------------------------------*/
package org.deegree.ogcwebservices.wps.describeprocess;
import java.util.ArrayList;
import java.util.List;
import org.deegree.datatypes.Code;
import org.deegree.ogcwebservices.MetadataType;
import org.deegree.ogcwebservices.wps.ProcessBrief;
/**
*
* ProcessDescription.java
*
* Created on 09.03.2006. 22:39:07h
*
* Full description of a process.
*
* @author <a href="mailto:christian@kiehle.org">Christian Kiehle</a>
* @author <a href="mailto:christian.heier@gmx.de">Christian Heier</a>
* @version 1.0.
* @since 2.0
*/
public class ProcessDescription extends ProcessBrief {
/**
*
* @param resonsibleClass
* @param identifier
* @param title
* @param _abstract
* @param processVersion
* @param metadata
* @param inputs
* @param outputs
* @param statusSupported
* @param storeSupported
*/
public ProcessDescription( String resonsibleClass, Code identifier, String title,
String _abstract, String processVersion, List<MetadataType> metadata,
DataInputs inputs, ProcessOutputs outputs, Boolean statusSupported,
Boolean storeSupported ) {
super( identifier, title, _abstract, processVersion, metadata );
this.responsibleClass = resonsibleClass;
this.dataInputs = inputs;
this.processOutputs = outputs;
this.statusSupported = statusSupported;
this.storeSupported = storeSupported;
}
protected String responsibleClass;
/**
* List of the inputs to this process. In almost all cases, at least one
* process input is required. However, no process inputs may be identified
* when all the inputs are predetermined fixed resources. In this case,
* those resources shall be identified in the ows:Abstract element that
* describes the process
*/
protected DataInputs dataInputs;
/**
* List of outputs which will or can result from executing the process.
*/
protected ProcessOutputs processOutputs;
/**
* Indicates if the Execute operation response can be returned quickly with
* status information, or will not be returned until process execution is
* complete. If "statusSupported" is "true", the Execute operation request
* may include "status" equals "true", directing that the Execute operation
* response be returned quickly with status information. By default, status
* information is not provided for this process, and the Execute operation
* response is not returned until process execution is complete.
*/
protected Boolean statusSupported;
/**
* Indicates if the ComplexData outputs from this process can be stored by
* the WPS server as web-accessible resources. If "storeSupported" is
* "true", the Execute operation request may include "store" equals "true",
* directing that all ComplexData outputs of the process be stored so that
* the client can retrieve them as required. By default for this process,
* storage is not supported and all outputs are returned encoded in the
* Execute response.
*/
protected Boolean storeSupported;
/**
* @return Returns the dataInputs.
*/
public DataInputs getDataInputs() {
return dataInputs;
}
/**
* @param dataInputs
* The dataInputs to set.
*/
public void setDataInputs( DataInputs value ) {
this.dataInputs = value;
}
/**
* @return Returns the processOutputs.
*/
public ProcessOutputs getProcessOutputs() {
return processOutputs;
}
/**
* @param processOutputs
* The processOutputs to set.
*/
public void setProcessOutputs( ProcessOutputs value ) {
this.processOutputs = value;
}
/**
*
* @return
*/
public boolean isStatusSupported() {
return statusSupported != null;
}
/**
* @param statusSupported
* The statusSupported to set.
*/
public void setStatusSupported( Boolean value ) {
this.statusSupported = value;
}
/**
*
* @return
*/
public boolean isStoreSupported() {
return storeSupported != null;
}
/**
* @param storeSupported
* The storeSupported to set.
*/
public void setStoreSupported( Boolean value ) {
this.storeSupported = value;
}
public static class DataInputs {
/**
*
*
* Unordered list of one or more descriptions of the inputs that can be
* accepted by this process, including all required and optional inputs.
* Where an input is optional because a default value exists, that
* default value must be identified in the "ows:Abstract" element for
* that input, except in the case of LiteralData, where the default must
* be indicated in the corresponding ows:DefaultValue element. Where an
* input is optional because it depends on the value(s) of other inputs,
* this must be indicated in the ows:Abstract element for that input.
*
*
*/
private List<InputDescription> inputDescriptions;
/**
* @return Returns the input.
*/
public List<InputDescription> getInputDescriptions() {
if ( inputDescriptions == null ) {
inputDescriptions = new ArrayList<InputDescription>();
}
return this.inputDescriptions;
}
public void setInputDescriptions( List<InputDescription> inputDescriptions ) {
this.inputDescriptions = inputDescriptions;
}
}
public static class ProcessOutputs {
/**
* Unordered list of one or more descriptions of all the outputs that
* can result from executing this process. At least one output is
* required from each process.
*/
protected List<OutputDescription> output;
/**
* @return Returns the output.
*/
public List<OutputDescription> getOutput() {
if ( output == null ) {
output = new ArrayList<OutputDescription>();
}
return this.output;
}
}
/**
* @return Returns the responsibleClass.
*/
public String getResponsibleClass() {
return responsibleClass;
}
}
/* ********************************************************************
Changes to this class. What the people have been up to:
$Log: ProcessDescription.java,v $
Revision 1.4 2006/11/27 09:07:52 poth
JNI integration of proj4 has been removed. The CRS functionality now will be done by native deegree code.
Revision 1.3 2006/08/24 06:42:16 poth
File header corrected
Revision 1.2 2006/07/12 14:46:15 poth
comment footer added
********************************************************************** */