RegionChooserCommandLineInterface.java 1.47 KB
Newer Older
Eric Duminil's avatar
Eric Duminil committed
1
2
3
package eu.simstadt.regionchooser;

import java.nio.file.Path;
Eric Duminil's avatar
Eric Duminil committed
4
5
6
7
8
import java.util.List;
import java.util.concurrent.Callable;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Parameters;
Eric Duminil's avatar
Eric Duminil committed
9
10


Eric Duminil's avatar
Eric Duminil committed
11
12
@Command(name = "region_chooser", mixinStandardHelpOptions = true, version = "regionChooser x.x", description = "Extracts a region from one or more citygmls.")
class RegionChooserCommandLineInterface implements Callable<Integer>
Eric Duminil's avatar
Eric Duminil committed
13
{
Eric Duminil's avatar
Eric Duminil committed
14
15
	@Parameters(index = "0", description = "SRS Name : 'EPSG:31467' or just 31467")
	String srsName;
Eric Duminil's avatar
Eric Duminil committed
16

Eric Duminil's avatar
Eric Duminil committed
17
18
	@Parameters(index = "1", description = "Output file : output.gml")
	Path outputCityGML;
Eric Duminil's avatar
Eric Duminil committed
19

Eric Duminil's avatar
Eric Duminil committed
20
21
	@Parameters(index = "2..*", arity = "1..*", description = "The citygml files to extract from : input1.gml input2.gml")
	List<Path> citygmls;
Eric Duminil's avatar
Eric Duminil committed
22

Eric Duminil's avatar
Eric Duminil committed
23
24
	@Override
	public Integer call() throws Exception { // your business logic goes here...
Eric Duminil's avatar
Eric Duminil committed
25
26
27
		System.out.println("Should extract from :");
		for (Path input_citygml : citygmls) {
			System.out.println("  " + input_citygml);
Eric Duminil's avatar
Eric Duminil committed
28
		}
Eric Duminil's avatar
Eric Duminil committed
29
30
31
32
33
		System.out.print("And write to : ");
		System.out.println(outputCityGML);
		System.out.print("in ");
		System.out.println(srsName + " coordinates.");

Eric Duminil's avatar
Eric Duminil committed
34
		return 0;
Eric Duminil's avatar
Eric Duminil committed
35
36
	}

Eric Duminil's avatar
Eric Duminil committed
37
38
39
40
41
	// this example implements Callable, so parsing, error handling and handling user
	// requests for usage help or version help can be done with one line of code.
	public static void main(String... args) {
		int exitCode = new CommandLine(new RegionChooserCommandLineInterface()).execute(args);
		System.exit(exitCode);
Eric Duminil's avatar
Eric Duminil committed
42
	}
Eric Duminil's avatar
Eric Duminil committed
43
}