/* (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.executor;
import org.opengis.util.ProgressListener;
/**
* A provider that can parse an input in a lazy way, to allow the input parsing time (sometimes
* significant) to be included as part of the overall execution time (and associated progress)
*
* @author Andrea Aime - GeoSolutions
*
*/
interface InputProvider {
/**
* Returns the value associated with this provider
*
* @param subListener
*
*/
public Object getValue(ProgressListener subListener) throws Exception;
/**
* Returns the input id for this value
*
*/
public String getInputId();
/**
* Returns true if the value has already been parsed
*
*/
public boolean resolved();
/**
* Returns the number of "long" steps to be carried out in order to get this input. A long step
* is either executing a sub-process, or having to fetch a remote data set
*
*
*/
int longStepCount();
}