OSDN Git Service

8fdfec43a31a6549f42700da7bf5400453cb3e0b
[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.sourceforge.mikutoga.parser.MmdFormatException;
17 import jp.sourceforge.mikutoga.parser.MmdSource;
18 import jp.sourceforge.mikutoga.parser.pmd.PmdParser;
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 = "D:\\Test\\test.pmd";
31     }
32
33     /**
34      * 入力ソースを準備する。
35      * @param fname ファイル名
36      * @return 入力ソース
37      */
38     private static MmdSource buildSource(String fname){
39         File file = new File(fname);
40
41         InputStream is;
42         try{
43             is = new FileInputStream(file);
44         }catch(FileNotFoundException e){
45             System.err.println(e);
46             System.exit(1);
47             return null;
48         }
49         is = new BufferedInputStream(is, BUF_SZ);
50
51         MmdSource source = new MmdSource(is);
52
53         return source;
54     }
55
56     /**
57      * 各種ハンドラをパーサにセットアップする。
58      * @param parser パーサ
59      */
60     private static void setupHandler(PmdParser parser){
61         parser.setBasicHandler(handler);
62         parser.setShapeHandler(handler);
63         parser.setMaterialHandler(handler);
64         parser.setBoneHandler(handler);
65         parser.setMorphHandler(handler);
66         parser.setEngHandler(handler);
67         parser.setToonHandler(handler);
68         parser.setRigidHandler(handler);
69         parser.setJointHandler(handler);
70
71         return;
72     }
73
74     /**
75      * Java実行エントリ
76      * @param args 起動引数
77      */
78     public static void main(String[] args){
79         String fname;
80         if(args.length == 1) fname = args[0];
81         else                 fname = PMDFILE;
82
83         MmdSource source = buildSource(fname);
84
85         PmdParser parser = new PmdParser(source);
86
87         setupHandler(parser);
88
89         try{
90             parser.parsePmd();
91         }catch(IOException e){
92             System.err.println(e);
93             System.exit(1);
94         }catch(MmdFormatException e){
95             System.err.println(e);
96             System.exit(1);
97         }
98
99         System.exit(0);
100
101         return;
102     }
103
104 }