View Javadoc
1   /*
2    * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> and others
3    *
4    * This program and the accompanying materials are made available under the
5    * terms of the Eclipse Distribution License v. 1.0 which is available at
6    * https://www.eclipse.org/org/documents/edl-v10.php.
7    *
8    * SPDX-License-Identifier: BSD-3-Clause
9    */
10  
11  package org.eclipse.jgit.pgm;
12  
13  import static java.lang.annotation.ElementType.TYPE;
14  import static java.lang.annotation.RetentionPolicy.RUNTIME;
15  
16  import java.lang.annotation.Retention;
17  import java.lang.annotation.Target;
18  
19  /**
20   * Annotation to document a {@link org.eclipse.jgit.pgm.TextBuiltin}.
21   * <p>
22   * This is an optional annotation for TextBuiltin subclasses and it carries
23   * documentation forward into the runtime system describing what the command is
24   * and why users may want to invoke it.
25   */
26  @Retention(RUNTIME)
27  @Target( { TYPE })
28  public @interface Command {
29  	/**
30  	 * Get the command name
31  	 *
32  	 * @return name the command is invoked as from the command line. If the
33  	 *         (default) empty string is supplied the name will be generated
34  	 *         from the class name.
35  	 */
36  	public String name() default "";
37  
38  	/**
39  	 * Get command description
40  	 *
41  	 * @return one line description of the command's feature set.
42  	 */
43  	public String usage() default "";
44  
45  	/**
46  	 * If this command is considered to be commonly used
47  	 *
48  	 * @return true if this command is considered to be commonly used.
49  	 */
50  	public boolean common() default false;
51  }