summaryrefslogtreecommitdiff
path: root/src/args/ArgsManager.java
blob: 332553c7b9babd6575e994726a97a9fdfa45cf70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package org.manzerbredes.open_klm.args;

import org.manzerbredes.open_klm.drivers.Driver;
import org.manzerbredes.open_klm.drivers.DriverTypeA;
import org.manzerbredes.open_klm.drivers.Driver_1770_ff00;

/**
 * 
 * Arguments manager
 * 
 * @author Manzerbredes
 *
 */
public class ArgsManager{
	
	/**
	 * List of Arguments Parser available
	 */
	private Class<?>[] parsers={
		ArgsTypeA.class
	};
	
	
	/**
	 * 
	 * Parse the arguments and exit
	 * 
	 * @param aDriver driver used to parse
	 * @param args arguments to parse
	 */
	public void parse(Driver aDriver, String[] args){
		if(args.length>0){
			for(Class<?> argsParser : this.parsers){
				ArgsParser parser;
				try {
					parser = (ArgsParser) argsParser.newInstance();
					if(parser.getType().equals(aDriver.getType())){
						parser.applyAndExit(aDriver, args);
					}
				} catch (Exception e){
					System.err.println(e.getMessage());
					System.exit(1);
				}
			}
		}
	}
	
}