OSDN Git Service

TogaGem1.103.2版より移行。
[mikutoga/TogaGem.git] / src / test / java / sample / pmd / DummyMain.java
1 /*\r
2  * sample parser\r
3  *\r
4  * License : The MIT License\r
5  * Copyright(c) 2010 MikuToga Partners\r
6  */\r
7 \r
8 package sample.pmd;\r
9 \r
10 import java.io.BufferedInputStream;\r
11 import java.io.File;\r
12 import java.io.FileInputStream;\r
13 import java.io.FileNotFoundException;\r
14 import java.io.IOException;\r
15 import java.io.InputStream;\r
16 import jp.sourceforge.mikutoga.parser.MmdFormatException;\r
17 import jp.sourceforge.mikutoga.parser.MmdSource;\r
18 import jp.sourceforge.mikutoga.parser.pmd.PmdParser;\r
19 \r
20 /**\r
21  * パーサ利用のサンプルプログラム。\r
22  */\r
23 public class DummyMain {\r
24 \r
25     private static final String PMDFILE;\r
26     private static final int BUF_SZ = 4086;\r
27     private static final DummyHandler handler = new DummyHandler();\r
28 \r
29     static{\r
30         PMDFILE = "D:\\Test\\test.pmd";\r
31     }\r
32 \r
33     /**\r
34      * 入力ソースを準備する。\r
35      * @param fname ファイル名\r
36      * @return 入力ソース\r
37      */\r
38     private static MmdSource buildSource(String fname){\r
39         File file = new File(fname);\r
40 \r
41         InputStream is;\r
42         try{\r
43             is = new FileInputStream(file);\r
44         }catch(FileNotFoundException e){\r
45             System.err.println(e);\r
46             System.exit(1);\r
47             return null;\r
48         }\r
49         is = new BufferedInputStream(is, BUF_SZ);\r
50 \r
51         MmdSource source = new MmdSource(is);\r
52 \r
53         return source;\r
54     }\r
55 \r
56     /**\r
57      * 各種ハンドラをパーサにセットアップする。\r
58      * @param parser パーサ\r
59      */\r
60     private static void setupHandler(PmdParser parser){\r
61         parser.setBasicHandler(handler);\r
62         parser.setShapeHandler(handler);\r
63         parser.setMaterialHandler(handler);\r
64         parser.setBoneHandler(handler);\r
65         parser.setMorphHandler(handler);\r
66         parser.setEngHandler(handler);\r
67         parser.setToonHandler(handler);\r
68         parser.setRigidHandler(handler);\r
69         parser.setJointHandler(handler);\r
70 \r
71         return;\r
72     }\r
73 \r
74     /**\r
75      * Java実行エントリ\r
76      * @param args 起動引数\r
77      */\r
78     public static void main(String[] args){\r
79         String fname;\r
80         if(args.length == 1) fname = args[0];\r
81         else                 fname = PMDFILE;\r
82 \r
83         MmdSource source = buildSource(fname);\r
84 \r
85         PmdParser parser = new PmdParser(source);\r
86 \r
87         setupHandler(parser);\r
88 \r
89         try{\r
90             parser.parsePmd();\r
91         }catch(IOException e){\r
92             System.err.println(e);\r
93             System.exit(1);\r
94         }catch(MmdFormatException e){\r
95             System.err.println(e);\r
96             System.exit(1);\r
97         }\r
98 \r
99         System.exit(0);\r
100 \r
101         return;\r
102     }\r
103 \r
104 }\r