DEADSOFTWARE

Добавлена возможножность вызова команд
[dsw-obn.git] / rtl / java / Launcher.java
1 import java.lang.reflect.*;
3 class Launcher
4 {
5 public static void main(String[] args)
6 {
7 /* Этап 1: Сохраняем список параметров */
8 Args.args = args;
10 /* Этап 2: Получаем имена связки Модуль.Команда */
11 if(args == null || args.length < 1)
12 {
13 System.err.println("uses: Launcher Module[.Command] {Argumets}");
14 System.exit(1);
15 }
17 String moduleName = args[0];
18 String commandName = "";
19 int i = args[0].indexOf('.');
20 if(i >= 0)
21 {
22 moduleName = args[0].substring(0, i);
23 commandName = args[0].substring(i + 1);
24 if(commandName == "BEGIN")
25 {
26 commandName = "";
27 }
28 }
30 /* Этап 3: Выполнение тела модуля и команды */
31 Class<?> module = null;
32 Method begin = null;
33 Method command = null;
35 try {
36 module = Class.forName(moduleName);
37 } catch(ClassNotFoundException e) {
38 System.err.println("Module " + moduleName + " not found");
39 System.exit(1);
40 }
42 try {
43 begin = module.getMethod("BEGIN");
44 } catch(Exception e) {
45 System.err.println("Invalid module " + moduleName);
46 System.exit(1);
47 }
49 try {
50 begin.invoke(null);
51 } catch(IllegalAccessException e) {
52 System.err.println("Invalid module " + moduleName);
53 System.exit(1);
54 } catch(IllegalArgumentException e) {
55 System.err.println("Invalid module " + moduleName);
56 System.exit(1);
57 } catch(InvocationTargetException e) {
58 System.err.println("Invalid module " + moduleName);
59 System.exit(1);
60 }
62 if(commandName == "")
63 {
64 return;
65 }
67 try {
68 command = module.getMethod(commandName);
69 } catch(Exception e) {
70 System.err.println("Invalid command " + moduleName + "." + commandName);
71 System.exit(1);
72 }
74 try {
75 command.invoke(null);
76 } catch(IllegalAccessException e) {
77 System.err.println("Invalid command " + moduleName + "." + commandName);
78 System.exit(1);
79 } catch(IllegalArgumentException e) {
80 System.err.println("Invalid command " + moduleName + "." + commandName);
81 System.exit(1);
82 } catch(InvocationTargetException e) {
83 System.err.println("Invalid command " + moduleName + "." + commandName);
84 System.exit(1);
85 }
86 }
87 }