![JAR search and dependency download from the Maven repository](/logo.png)
de.charite.compbio.jannovar.cmd.rest_server.RestServerOptions Maven / Gradle / Ivy
package de.charite.compbio.jannovar.cmd.rest_server;
import de.charite.compbio.jannovar.UncheckedJannovarException;
import de.charite.compbio.jannovar.cmd.CommandLineParsingException;
import de.charite.compbio.jannovar.cmd.JannovarAnnotationOptions;
import de.charite.compbio.jannovar.cmd.JannovarBaseOptions;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiFunction;
import net.sourceforge.argparse4j.impl.Arguments;
import net.sourceforge.argparse4j.inf.ArgumentGroup;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.Namespace;
import net.sourceforge.argparse4j.inf.Subparser;
import net.sourceforge.argparse4j.inf.Subparsers;
/**
* Options for the rest-server comman
*
* @author Manuel Holtgrewe
*/
public class RestServerOptions extends JannovarBaseOptions {
/**
* The {@code .ser} files to load at startup.
*/
private List dbPaths = new ArrayList<>();
/**
* The host to listen on.
*/
private String host = "127.0.0.1";
/**
* The port to listen on.
*/
private int port = 5050;
/**
* Setup {@link ArgumentParser}
*
* @param subParsers {@link Subparsers} to setup
*/
public static void setupParser(Subparsers subParsers) {
BiFunction handler = (argv, args) -> {
try {
return new RestServerCommand(argv, args);
} catch (CommandLineParsingException e) {
throw new UncheckedJannovarException("Could not parse command line", e);
}
};
Subparser subParser = subParsers.addParser("rest-server", true).help("start REST server")
.setDefault("cmd", handler);
subParser.description("Start built-in REST server for the annotation of single variants");
ArgumentGroup requiredGroup = subParser.addArgumentGroup("Required arguments");
requiredGroup.addArgument("--host").help("Host specification to listen on")
.setDefault("127.0.0.1");
requiredGroup.addArgument("--port").help("Port to listen on").type(Integer.class)
.setDefault(5050);
requiredGroup.addArgument("-d", "--database").help(
"Path to .ser file(s) with database, naming is $genome_$label; can be given multiple times")
.action(Arguments.append()).required(true);
subParser.epilog(
"Example: java -jar Jannovar.jar rest-server --host 0.0.0.0 --port 80 -d hg19_refseq.ser");
JannovarAnnotationOptions.setupParser(subParser);
}
@Override public void setFromArgs(Namespace args) throws CommandLineParsingException {
super.setFromArgs(args);
host = args.getString("host");
port = args.getInt("port");
dbPaths = args.getList("database");
}
public List getDbPaths() {
return dbPaths;
}
public void setDbPaths(List dbPaths) {
this.dbPaths = dbPaths;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
@Override public String toString() {
return "RestServerOptions{" + "dbPaths=" + dbPaths + ", host='" + host + '\'' + ", port="
+ port + '}';
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy