/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2009, Open Source Geospatial Foundation (OSGeo)
*
* 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;
* version 2.1 of the License.
*
* 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.geotools.process.factory;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.opengis.parameter.Parameter;
/**
* DescribeProcess information for publication by DEMProcessFactory.
* <p>
* Annotation is used to mark a method for publication via DEMProcessFactory
*
* @author Jody
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface DescribeResult {
/**
* The name of the result, defaults to "result"
*
* @return
*/
String name() default "result";
/**
* The type of the result, needed only when there are multiple ones (since it cannot be desumed
* from the process Map return type
*
* @return
*/
Class<?> type() default Object.class;
/**
* The result description
*
* @return
*/
String description() default "[undescribed]";
/**
* If true, this is the primary result of the process
*
* @return
*/
boolean primary() default false;
/**
* Extra metadata values for this parameter which will be added into the {@link Parameter}
* metadata map. Each string should be in the key=value form, if not, the string will be taken
* as the key and the value will be null.
*/
String[] meta() default {};
}