opennlp.tools.cmdline.CmdLineTool Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package opennlp.tools.cmdline;
/**
* Base class for all command line tools.
*/
public abstract class CmdLineTool {
protected CmdLineTool() {
}
/**
* Retrieves the name of the training data tool. The name (used as command)
* must not contain white spaces.
*
* @return the name of the command line tool
*/
public String getName() {
if (getClass().getName().endsWith("Tool")) {
return getClass().getSimpleName().substring(0, getClass().getSimpleName().length() - 4);
} else {
return getClass().getSimpleName();
}
}
/**
* Returns whether the tool has any command line params.
* @return whether the tool has any command line params
*/
public boolean hasParams() {
return true;
}
protected String getBasicHelp(Class> argProxyInterface) {
return getBasicHelp(new Class[]{argProxyInterface});
}
protected String getBasicHelp(Class>... argProxyInterfaces) {
return "Usage: " + CLI.CMD + " " + getName() + " " +
ArgumentParser.createUsage(argProxyInterfaces);
}
/**
* Retrieves a description on how to use the tool.
*
* @return a description on how to use the tool
*/
public abstract String getHelp();
protected T validateAndParseParams(String[] args, Class argProxyInterface) {
String errorMessage = ArgumentParser.validateArgumentsLoudly(args, argProxyInterface);
if (null != errorMessage) {
throw new TerminateToolException(1, errorMessage + "\n" + getHelp());
}
return ArgumentParser.parse(args, argProxyInterface);
}
/**
* Retrieves a short description of what the tool does.
*
* @return a short description of what the tool does
*/
public String getShortDescription() {
return "";
}
}