OSDN Git Service

パーサパッケージ名変更
[mikutoga/TogaGem.git] / src / test / java / sample / pmd / DummyMain.java
1 /*
2  * sample parser
3  *
4  * License : The MIT License
5  * Copyright(c) 2010 MikuToga Partners
6  */
7
8 package sample.pmd;
9
10 import java.io.BufferedInputStream;
11 import java.io.File;
12 import java.io.FileInputStream;
13 import java.io.FileNotFoundException;
14 import java.io.IOException;
15 import java.io.InputStream;
16 import jp.sfjp.mikutoga.bin.parser.MmdFormatException;
17 import jp.sfjp.mikutoga.pmd.parser.PmdParser;
18
19 /**
20  * パーサ利用のサンプルプログラム。
21  * これはユニットテストではない。
22  */
23 public class DummyMain {
24
25     private static final String PMDFILE;
26     private static final int BUF_SZ = 4086;
27     private static final DummyHandler handler = new DummyHandler();
28
29     static{
30         PMDFILE =
31                 "D:\\Test\\test.pmd";
32     }
33
34     /**
35      * アプリを終了する。
36      * 制御は戻らない。
37      * @param code 終了コード。
38      */
39     private static void exit(int code){
40         System.exit(code);
41         assert false;
42         return;
43     }
44
45     /**
46      * 標準エラー出力にエラー情報を出し改行する。
47      * @param text エラー情報文字列
48      */
49     private static void errprintln(Object text){
50         System.err.println(text);
51         return;
52     }
53
54     /**
55      * 入力ソースを準備する。
56      * @param fname ファイル名
57      * @return 入力ソース
58      */
59     private static InputStream buildSource(String fname){
60         File file = new File(fname);
61
62         InputStream is;
63         try{
64             is = new FileInputStream(file);
65         }catch(FileNotFoundException e){
66             errprintln(e);
67             exit(1);
68             return null;
69         }
70
71         is = new BufferedInputStream(is, BUF_SZ);
72
73         return is;
74     }
75
76     /**
77      * 各種ハンドラをパーサにセットアップする。
78      * @param parser パーサ
79      */
80     private static void setupHandler(PmdParser parser){
81         parser.setBasicHandler(handler);
82         parser.setShapeHandler(handler);
83         parser.setMaterialHandler(handler);
84         parser.setBoneHandler(handler);
85         parser.setMorphHandler(handler);
86         parser.setEngHandler(handler);
87         parser.setToonHandler(handler);
88         parser.setRigidHandler(handler);
89         parser.setJointHandler(handler);
90
91         return;
92     }
93
94     /**
95      * Java実行エントリ
96      * @param args 起動引数
97      */
98     public static void main(String[] args){
99         String fname;
100         if(args.length == 1) fname = args[0];
101         else                 fname = PMDFILE;
102
103         InputStream source = buildSource(fname);
104
105         PmdParser parser = new PmdParser(source);
106
107         setupHandler(parser);
108
109         try{
110             parser.parsePmd();
111         }catch(IOException e){
112             errprintln(e);
113             exit(1);
114         }catch(MmdFormatException e){
115             errprintln(e);
116             exit(1);
117         }
118
119         exit(0);
120
121         return;
122     }
123
124 }