001/* 002 * (C) Copyright 2011 Nuxeo SA (http://nuxeo.com/) and contributors. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the GNU Lesser General Public License 006 * (LGPL) version 2.1 which accompanies this distribution, and is available at 007 * http://www.gnu.org/licenses/lgpl.html 008 * 009 * This library is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012 * Lesser General Public License for more details. 013 * 014 * Contributors: 015 * Florent Guillaume 016 */ 017package org.nuxeo.apidoc.api; 018 019import java.util.List; 020 021import org.nuxeo.ecm.automation.OperationDocumentation.Param; 022 023/** 024 * Information about an operation 025 */ 026public interface OperationInfo extends NuxeoArtifact, Comparable<OperationInfo> { 027 028 String TYPE_NAME = "NXOperation"; 029 030 /** Prefix for {@link #getId}. */ 031 String ARTIFACT_PREFIX = "op:"; 032 033 String PROP_NAME = "nxop:name"; 034 035 String PROP_ALIASES = "nxop:aliases"; 036 037 String PROP_VERSION = "nxop:version"; 038 039 String PROP_DESCRIPTION = "nxop:description"; 040 041 String PROP_SIGNATURE = "nxop:signature"; 042 043 String PROP_CATEGORY = "nxop:category"; 044 045 String PROP_URL = "nxop:url"; 046 047 String PROP_LABEL = "nxop:label"; 048 049 String PROP_REQUIRES = "nxop:requires"; 050 051 String PROP_SINCE = "nxop:since"; 052 053 String PROP_PARAMS = "nxop:params"; 054 055 String PROP_PARAM_NAME = "name"; 056 057 String PROP_PARAM_TYPE = "type"; 058 059 String PROP_PARAM_WIDGET = "widget"; 060 061 String PROP_PARAM_VALUES = "values"; 062 063 String PROP_PARAM_REQUIRED = "required"; 064 065 String PROP_PARAM_ORDER = "order"; 066 067 String PROP_OP_CLASS = "operationClass"; 068 069 String PROP_CONTRIBUTING_COMPONENT = "contributingComponent"; 070 071 String BUILT_IN = "BuiltIn"; 072 073 /** 074 * Actual operation id. ({@link #getId} is prefixed with {@link #ARTIFACT_PREFIX}) 075 */ 076 String getName(); 077 078 String[] getAliases(); 079 080 String getUrl(); 081 082 String[] getSignature(); 083 084 String getCategory(); 085 086 String getLabel(); 087 088 String getRequires(); 089 090 String getSince(); 091 092 String getDescription(); 093 094 List<Param> getParams(); 095 096 String getOperationClass(); 097 098 String getContributingComponent(); 099}