All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.cli.declarative.CLIMethod Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 *
 * Copyright (c) 2004-2009, Oracle Corporation
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *
 *
 *
 *
 *******************************************************************************/ 

package hudson.cli.declarative;

import hudson.cli.CLICommand;
import hudson.util.ListBoxModel.Option;
import org.jvnet.hudson.annotation_indexer.Indexed;
import org.kohsuke.args4j.Argument;

import java.lang.annotation.Documented;
import static java.lang.annotation.ElementType.METHOD;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;

/**
 * Annotates methods on model objects to expose them as CLI commands.
 *
 * 

You need to have Messages.properties in the same package with * the CLI.command-name.shortDescription key to describe the * command. This is used for the same purpose as * {@link CLICommand#getShortDescription()}. * *

If you put a {@link CLIMethod} on an instance method (as opposed to a * static method), you need a corresponding * {@linkplain CLIResolver CLI resolver method}. * *

A CLI method can have its parameters annotated with {@link Option} and * {@link Argument}, to receive parameter/argument injections. * *

A CLI method needs to be public. * * @author Kohsuke Kawaguchi * @see CLICommand * @since 1.321 */ @Indexed @Retention(RUNTIME) @Target({METHOD}) @Documented public @interface CLIMethod { /** * CLI command name. Used as {@link CLICommand#getName()} */ String name(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy