OSDN Git Service

オーバーライドしているメソッド全てに @Override アノテーションを追加した.
[stigmata/stigmata-core.git] / src / main / java / jp / sourceforge / stigmata / command / HelpCommand.java
1 package jp.sourceforge.stigmata.command;
2
3 /*
4  * $Id$
5  */
6
7 import java.util.ResourceBundle;
8
9 import jp.sourceforge.stigmata.BirthmarkContext;
10 import jp.sourceforge.stigmata.BirthmarkEnvironment;
11 import jp.sourceforge.stigmata.ComparisonPairFilter;
12 import jp.sourceforge.stigmata.ComparisonPairFilterSet;
13 import jp.sourceforge.stigmata.Stigmata;
14 import jp.sourceforge.stigmata.spi.BirthmarkSpi;
15 import jp.sourceforge.talisman.xmlcli.ResourceHelpFormatter;
16
17 import org.apache.commons.cli.HelpFormatter;
18 import org.apache.commons.cli.Options;
19
20 /**
21  * 
22  * @author Haruaki Tamada
23  * @version $Revision$
24  */
25 public class HelpCommand extends AbstractStigmataCommand{
26     private Options options;
27
28     public HelpCommand(Options options){
29         this.options = options;
30     }
31
32     @Override
33     public String getCommandString(){
34         return "help";
35     }
36
37     @Override
38     public void perform(Stigmata stigmata, BirthmarkContext context, String[] args){
39         BirthmarkEnvironment env = context.getEnvironment();
40         Package p = getClass().getPackage();
41
42         ResourceBundle helpResource = ResourceBundle.getBundle("resources.options");
43         HelpFormatter formatter = new ResourceHelpFormatter(helpResource);
44         formatter.printHelp(
45             String.format(
46                 helpResource.getString("cli.interface"),
47                 p.getImplementationVersion()
48             ),
49             options
50         );
51         System.out.println();
52         System.out.println(helpResource.getString("cli.interface.birthmarks"));
53         for(BirthmarkSpi service: env.getServices()){
54             if(!service.isExperimental()){
55                 System.out.printf("    %-5s (%s): %s%n", service.getType(),
56                         service.getDisplayType(), service.getDescription());
57             }
58         }
59         System.out.println();
60         System.out.println(helpResource.getString("cli.interface.filters"));
61         for(ComparisonPairFilterSet filterset: env.getFilterManager().getFilterSets()){
62             String matchString = helpResource.getString("cli.interface.filter.matchall");
63             if(filterset.isMatchAny()) matchString = helpResource.getString("cli.interface.filter.matchany");
64             System.out.printf("    %s (%s)%n", filterset.getName(), matchString);
65             for(ComparisonPairFilter filter: filterset){
66                 System.out.printf("        %s%n", filter);
67             }
68         }
69         System.out.println();
70         System.out.println(helpResource.getString("cli.interface.copyright"));
71         System.out.println(helpResource.getString("cli.interface.mailto"));
72     }
73 }