You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by au...@apache.org on 2012/01/22 21:22:56 UTC
svn commit: r1234594 - in
/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline:
./ chunker/ dictionary/ doccat/ namefind/ parser/ postag/ sentdetect/
tokenizer/
Author: autayeu
Date: Sun Jan 22 20:22:55 2012
New Revision: 1234594
URL: http://svn.apache.org/viewvc?rev=1234594&view=rev
Log:
OPENNLP-402: Improved class hierarchy and naming
Added:
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractBasicCmdLineTool.java (contents, props changed)
- copied, changed from r1234481, incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BaseCLITool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedParamTool.java (with props)
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java
- copied, changed from r1234481, incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java
Removed:
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractCLITool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BaseCLITool.java
Modified:
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractCmdLineTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CLI.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/CensusDictionaryCreatorTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java
Copied: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractBasicCmdLineTool.java (from r1234481, incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BaseCLITool.java)
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractBasicCmdLineTool.java?p2=incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractBasicCmdLineTool.java&p1=incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BaseCLITool.java&r1=1234481&r2=1234594&rev=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BaseCLITool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractBasicCmdLineTool.java Sun Jan 22 20:22:55 2012
@@ -18,11 +18,11 @@
package opennlp.tools.cmdline;
/**
- * Base class for standard tools.
+ * Base class for basic tools.
*/
-public abstract class BaseCLITool extends AbstractCLITool<Class> implements CmdLineTool {
+public abstract class AbstractBasicCmdLineTool extends AbstractCmdLineTool implements BasicCmdLineTool {
- public BaseCLITool() {
- super(null);
+ public AbstractBasicCmdLineTool() {
+ super();
}
-}
+}
\ No newline at end of file
Propchange: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractBasicCmdLineTool.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractBasicCmdLineTool.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractCmdLineTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractCmdLineTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractCmdLineTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractCmdLineTool.java Sun Jan 22 20:22:55 2012
@@ -18,29 +18,40 @@
package opennlp.tools.cmdline;
/**
- * Base interface for command line tools.
+ * Base class for all command line tools.
*/
-public interface AbstractCmdLineTool {
+public abstract class AbstractCmdLineTool implements 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
- */
- String getName();
-
- /**
- * Retrieves a short description of what the tool does.
- *
- * @return a short description of what the tool does
- */
- String getShortDescription();
-
- /**
- * Retrieves a description on how to use the tool.
- *
- * @return a description on how to use the tool
- */
- String getHelp();
-}
+ protected AbstractCmdLineTool() {
+ }
+
+ public String getName() {
+ if (getClass().getName().endsWith("Tool")) {
+ return getClass().getSimpleName().substring(0, getClass().getSimpleName().length() - 4);
+ } else {
+ return getClass().getSimpleName();
+ }
+ }
+
+ @SuppressWarnings({"unchecked"})
+ protected <T> String getBasicHelp(Class<T> argProxyInterface) {
+ return getBasicHelp(new Class[]{argProxyInterface});
+ }
+
+ protected <T> String getBasicHelp(Class<T>... argProxyInterfaces) {
+ return "Usage: " + CLI.CMD + " " + getName() + " " +
+ ArgumentParser.createUsage(argProxyInterfaces);
+ }
+
+ protected <T> T validateAndParseParams(String[] args, Class<T> argProxyInterface) {
+ String errorMessage = ArgumentParser.validateArgumentsLoudly(args, argProxyInterface);
+ if (null != errorMessage) {
+ throw new TerminateToolException(1, errorMessage + "\n" + getHelp());
+ }
+ return ArgumentParser.parse(args, argProxyInterface);
+ }
+
+ public String getShortDescription() {
+ return "";
+ }
+}
\ No newline at end of file
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractConverterTool.java Sun Jan 22 20:22:55 2012
@@ -28,7 +28,7 @@ import opennlp.tools.util.ObjectStream;
* @param <T> class of data sample the tool converts, for example {@link opennlp.tools.postag
* .POSSample}
*/
-public abstract class AbstractConverterTool<T> extends AbstractTypedTool<T, Class> {
+public abstract class AbstractConverterTool<T> extends AbstractTypedTool<T> {
/**
* Constructor with type parameter.
@@ -36,7 +36,7 @@ public abstract class AbstractConverterT
* @param sampleType class of the template parameter
*/
protected AbstractConverterTool(Class<T> sampleType) {
- super(sampleType, null);
+ super(sampleType);
}
public String getShortDescription() {
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractEvaluatorTool.java Sun Jan 22 20:22:55 2012
@@ -22,7 +22,7 @@ import opennlp.tools.util.ObjectStream;
/**
* Base class for evaluator tools.
*/
-public class AbstractEvaluatorTool<T, P> extends AbstractTypedTool<T, P> {
+public class AbstractEvaluatorTool<T, P> extends AbstractTypedParamTool<T, P> {
protected P params;
protected ObjectStreamFactory<T> factory;
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTrainerTool.java Sun Jan 22 20:22:55 2012
@@ -23,7 +23,7 @@ import opennlp.tools.util.TrainingParame
/**
* Base class for trainer tools.
*/
-public class AbstractTrainerTool<T, P> extends AbstractTypedTool<T, P> {
+public class AbstractTrainerTool<T, P> extends AbstractTypedParamTool<T, P> {
protected P params;
protected TrainingParameters mlParams;
Added: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedParamTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedParamTool.java?rev=1234594&view=auto
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedParamTool.java (added)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedParamTool.java Sun Jan 22 20:22:55 2012
@@ -0,0 +1,56 @@
+/*
+ * 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 tools which take additional parameters. For example, trainers or evaluators.
+ */
+public abstract class AbstractTypedParamTool<T, P> extends AbstractTypedTool<T> {
+
+ /**
+ * variable to access the parameters
+ */
+ protected final Class<P> paramsClass;
+
+ /**
+ * Constructor with type parameters.
+ *
+ * @param sampleType class of the template parameter
+ * @param paramsClass interface with parameters
+ */
+ protected AbstractTypedParamTool(Class<T> sampleType, Class<P> paramsClass) {
+ super(sampleType);
+ this.paramsClass = paramsClass;
+ }
+
+ @SuppressWarnings({"unchecked"})
+ public String getHelp(String format) {
+ if ("".equals(format) || StreamFactoryRegistry.DEFAULT_FORMAT.equals(format)) {
+ return getBasicHelp(paramsClass,
+ StreamFactoryRegistry.getFactory(type, StreamFactoryRegistry.DEFAULT_FORMAT)
+ .<P>getParameters());
+ } else {
+ ObjectStreamFactory<T> factory = StreamFactoryRegistry.getFactory(type, format);
+ if (null == factory) {
+ throw new TerminateToolException(1, "Format " + format + " is not found.\n" + getHelp());
+ }
+ return "Usage: " + CLI.CMD + " " + getName() + "." + format + " " +
+ ArgumentParser.createUsage(paramsClass, factory.<P>getParameters());
+ }
+ }
+}
Propchange: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedParamTool.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/AbstractTypedTool.java Sun Jan 22 20:22:55 2012
@@ -20,26 +20,25 @@ package opennlp.tools.cmdline;
import java.util.Map;
/**
- * Base class for tools which work with data of some type T.
+ * Base class for tools which support processing of samples of some type T
+ * coming from a stream of a certain format.
*/
-public abstract class AbstractTypedTool<T, P>
- extends AbstractCLITool<P> implements TypedCmdLineTool {
+public abstract class AbstractTypedTool<T>
+ extends AbstractCmdLineTool implements TypedCmdLineTool {
/**
* variable to access the type of the generic parameter.
*/
- protected Class<T> type;
+ protected final Class<T> type;
/**
* Constructor with type parameters.
*
* @param sampleType class of the template parameter
- * @param paramsClass interface with parameters
*/
- protected AbstractTypedTool(Class<T> sampleType, Class<P> paramsClass) {
- super(paramsClass);
+ protected AbstractTypedTool(Class<T> sampleType) {
+ super();
this.type = sampleType;
- this.paramsClass = paramsClass;
}
/**
@@ -111,20 +110,4 @@ public abstract class AbstractTypedTool<
public String getHelp() {
return getHelp("");
}
-
- @SuppressWarnings({"unchecked"})
- public String getHelp(String format) {
- if ("".equals(format) || StreamFactoryRegistry.DEFAULT_FORMAT.equals(format)) {
- return getBasicHelp(paramsClass,
- StreamFactoryRegistry.getFactory(type, StreamFactoryRegistry.DEFAULT_FORMAT)
- .<P>getParameters());
- } else {
- ObjectStreamFactory<T> factory = StreamFactoryRegistry.getFactory(type, format);
- if (null == factory) {
- throw new TerminateToolException(1, "Format " + format + " is not found.\n" + getHelp());
- }
- return "Usage: " + CLI.CMD + " " + getName() + "." + format + " " +
- ArgumentParser.createUsage(paramsClass, factory.<P>getParameters());
- }
- }
}
\ No newline at end of file
Copied: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java (from r1234481, incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java)
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java?p2=incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java&p1=incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java&r1=1234481&r2=1234594&rev=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/BasicCmdLineTool.java Sun Jan 22 20:22:55 2012
@@ -18,11 +18,11 @@
package opennlp.tools.cmdline;
/**
- * A tool which can be executed from the command line.
+ * A simple tool which can be executed from the command line.
* <p>
* <b>Note:</b> Do not use this class, internal use only!
*/
-public interface CmdLineTool extends AbstractCmdLineTool {
+public interface BasicCmdLineTool extends CmdLineTool {
/**
* Executes the tool with the given parameters.
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CLI.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CLI.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CLI.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CLI.java Sun Jan 22 20:22:55 2012
@@ -67,12 +67,12 @@ public final class CLI {
public static final String CMD = "opennlp";
- private static Map<String, AbstractCmdLineTool> toolLookupMap;
+ private static Map<String, CmdLineTool> toolLookupMap;
static {
- toolLookupMap = new LinkedHashMap<String, AbstractCmdLineTool>();
+ toolLookupMap = new LinkedHashMap<String, CmdLineTool>();
- List<AbstractCmdLineTool> tools = new LinkedList<AbstractCmdLineTool>();
+ List<CmdLineTool> tools = new LinkedList<CmdLineTool>();
// Document Categorizer
tools.add(new DoccatTool());
@@ -128,7 +128,7 @@ public final class CLI {
tools.add(new CheckModelUpdaterTool()); // re-trains build model
tools.add(new TaggerModelReplacerTool());
- for (AbstractCmdLineTool tool : tools) {
+ for (CmdLineTool tool : tools) {
toolLookupMap.put(tool.getName(), tool);
}
@@ -156,7 +156,7 @@ public final class CLI {
}
numberOfSpaces = numberOfSpaces + 4;
- for (AbstractCmdLineTool tool : toolLookupMap.values()) {
+ for (CmdLineTool tool : toolLookupMap.values()) {
System.out.print(" " + tool.getName());
@@ -190,7 +190,7 @@ public final class CLI {
formatName = toolName.substring(idx + 1);
toolName = toolName.substring(0, idx);
}
- AbstractCmdLineTool tool = toolLookupMap.get(toolName);
+ CmdLineTool tool = toolLookupMap.get(toolName);
try {
if (null == tool) {
@@ -201,7 +201,7 @@ public final class CLI {
0 < toolArguments.length && "help".equals(toolArguments[0])) {
if (tool instanceof TypedCmdLineTool) {
System.out.println(((TypedCmdLineTool) tool).getHelp(formatName));
- } else if (tool instanceof CmdLineTool) {
+ } else if (tool instanceof BasicCmdLineTool) {
System.out.println(tool.getHelp());
}
@@ -210,9 +210,9 @@ public final class CLI {
if (tool instanceof TypedCmdLineTool) {
((TypedCmdLineTool) tool).run(formatName, toolArguments);
- } else if (tool instanceof CmdLineTool) {
+ } else if (tool instanceof BasicCmdLineTool) {
if (-1 == idx) {
- ((CmdLineTool) tool).run(toolArguments);
+ ((BasicCmdLineTool) tool).run(toolArguments);
} else {
throw new TerminateToolException(1, "Tool " + toolName + " does not support formats.");
}
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/CmdLineTool.java Sun Jan 22 20:22:55 2012
@@ -1,33 +1,46 @@
-/*
- * 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;
-
-/**
- * A tool which can be executed from the command line.
- * <p>
- * <b>Note:</b> Do not use this class, internal use only!
- */
-public interface CmdLineTool extends AbstractCmdLineTool {
-
- /**
- * Executes the tool with the given parameters.
- *
- * @param args arguments
- */
- void run(String args[]);
-}
+/*
+ * 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 interface for all command line tools.
+ */
+public interface 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
+ */
+ String getName();
+
+ /**
+ * Retrieves a short description of what the tool does.
+ *
+ * @return a short description of what the tool does
+ */
+ String getShortDescription();
+
+ /**
+ * Retrieves a description on how to use the tool.
+ *
+ * @return a description on how to use the tool
+ */
+ String getHelp();
+}
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/TypedCmdLineTool.java Sun Jan 22 20:22:55 2012
@@ -18,9 +18,10 @@
package opennlp.tools.cmdline;
/**
- * Interface for tools which support formats and processing of samples.
+ * Interface for tools which support processing of samples of some type
+ * coming from a stream of a certain format.
*/
-public interface TypedCmdLineTool extends AbstractCmdLineTool {
+public interface TypedCmdLineTool extends CmdLineTool {
/**
* Executes the tool with the given parameters.
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/chunker/ChunkerMETool.java Sun Jan 22 20:22:55 2012
@@ -25,7 +25,7 @@ import opennlp.tools.chunker.ChunkSample
import opennlp.tools.chunker.ChunkerME;
import opennlp.tools.chunker.ChunkerModel;
import opennlp.tools.chunker.DefaultChunkerSequenceValidator;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.PerformanceMonitor;
@@ -34,7 +34,7 @@ import opennlp.tools.util.InvalidFormatE
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.PlainTextByLineStream;
-public class ChunkerMETool extends BaseCLITool {
+public class ChunkerMETool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "learnable chunker";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/dictionary/DictionaryBuilderTool.java Sun Jan 22 20:22:55 2012
@@ -25,12 +25,12 @@ import java.io.InputStreamReader;
import java.io.OutputStream;
import java.nio.charset.Charset;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.TerminateToolException;
import opennlp.tools.dictionary.Dictionary;
-public class DictionaryBuilderTool extends BaseCLITool {
+public class DictionaryBuilderTool extends AbstractBasicCmdLineTool {
interface Params extends DictionaryBuilderParams {
}
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/doccat/DoccatTool.java Sun Jan 22 20:22:55 2012
@@ -21,7 +21,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.PerformanceMonitor;
@@ -32,7 +32,7 @@ import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.ParagraphStream;
import opennlp.tools.util.PlainTextByLineStream;
-public class DoccatTool extends BaseCLITool {
+public class DoccatTool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "learnable document categorizer";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/CensusDictionaryCreatorTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/CensusDictionaryCreatorTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/CensusDictionaryCreatorTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/CensusDictionaryCreatorTool.java Sun Jan 22 20:22:55 2012
@@ -24,7 +24,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.ArgumentParser.OptionalParameter;
import opennlp.tools.cmdline.ArgumentParser.ParameterDescription;
import opennlp.tools.cmdline.CmdLineUtil;
@@ -42,7 +42,7 @@ import opennlp.tools.util.StringList;
* <br>
* <a href="http://www.census.gov/genealogy/names/names_files.html">www.census.gov</a>
*/
-public class CensusDictionaryCreatorTool extends BaseCLITool {
+public class CensusDictionaryCreatorTool extends AbstractBasicCmdLineTool {
/**
* Create a list of expected parameters.
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/namefind/TokenNameFinderTool.java Sun Jan 22 20:22:55 2012
@@ -24,7 +24,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.PerformanceMonitor;
@@ -37,7 +37,7 @@ import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.PlainTextByLineStream;
import opennlp.tools.util.Span;
-public final class TokenNameFinderTool extends BaseCLITool {
+public final class TokenNameFinderTool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "learnable name finder";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ModelUpdaterTool.java Sun Jan 22 20:22:55 2012
@@ -20,7 +20,7 @@ package opennlp.tools.cmdline.parser;
import java.io.File;
import java.io.IOException;
-import opennlp.tools.cmdline.AbstractTypedTool;
+import opennlp.tools.cmdline.AbstractTypedParamTool;
import opennlp.tools.cmdline.ArgumentParser;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.ObjectStreamFactory;
@@ -34,7 +34,7 @@ import opennlp.tools.util.ObjectStream;
* Abstract base class for tools which update the parser model.
*/
abstract class ModelUpdaterTool
- extends AbstractTypedTool<Parse, ModelUpdaterTool.ModelUpdaterParams> {
+ extends AbstractTypedParamTool<Parse, ModelUpdaterTool.ModelUpdaterParams> {
interface ModelUpdaterParams extends TrainingToolParams {
}
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/ParserTool.java Sun Jan 22 20:22:55 2012
@@ -26,7 +26,7 @@ import java.util.List;
import java.util.StringTokenizer;
import java.util.regex.Pattern;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.PerformanceMonitor;
@@ -38,7 +38,7 @@ import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.PlainTextByLineStream;
import opennlp.tools.util.Span;
-public final class ParserTool extends BaseCLITool {
+public final class ParserTool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "performs full syntactic parsing";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/parser/TaggerModelReplacerTool.java Sun Jan 22 20:22:55 2012
@@ -19,7 +19,7 @@ package opennlp.tools.cmdline.parser;
import java.io.File;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.postag.POSModelLoader;
@@ -27,7 +27,7 @@ import opennlp.tools.parser.ParserModel;
import opennlp.tools.postag.POSModel;
// user should train with the POS tool
-public final class TaggerModelReplacerTool extends BaseCLITool {
+public final class TaggerModelReplacerTool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "replaces the tagger model in a parser model";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/postag/POSTaggerTool.java Sun Jan 22 20:22:55 2012
@@ -21,7 +21,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.PerformanceMonitor;
@@ -32,7 +32,7 @@ import opennlp.tools.tokenize.Whitespace
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.PlainTextByLineStream;
-public final class POSTaggerTool extends BaseCLITool {
+public final class POSTaggerTool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "learnable part of speech tagger";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/sentdetect/SentenceDetectorTool.java Sun Jan 22 20:22:55 2012
@@ -21,7 +21,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.PerformanceMonitor;
@@ -34,7 +34,7 @@ import opennlp.tools.util.PlainTextByLin
/**
* A sentence detector which uses a maxent model to predict the sentences.
*/
-public final class SentenceDetectorTool extends BaseCLITool {
+public final class SentenceDetectorTool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "learnable sentence detector";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/DictionaryDetokenizerTool.java Sun Jan 22 20:22:55 2012
@@ -21,7 +21,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.cmdline.CmdLineUtil;
import opennlp.tools.cmdline.PerformanceMonitor;
@@ -32,7 +32,7 @@ import opennlp.tools.tokenize.Whitespace
import opennlp.tools.util.ObjectStream;
import opennlp.tools.util.PlainTextByLineStream;
-public final class DictionaryDetokenizerTool extends BaseCLITool {
+public final class DictionaryDetokenizerTool extends AbstractBasicCmdLineTool {
public String getHelp() {
return "Usage: " + CLI.CMD + " " + getName() + " detokenizerDictionary";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/SimpleTokenizerTool.java Sun Jan 22 20:22:55 2012
@@ -17,10 +17,10 @@
package opennlp.tools.cmdline.tokenizer;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
-public final class SimpleTokenizerTool extends BaseCLITool {
+public final class SimpleTokenizerTool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "character class tokenizer";
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java?rev=1234594&r1=1234593&r2=1234594&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/cmdline/tokenizer/TokenizerMETool.java Sun Jan 22 20:22:55 2012
@@ -19,11 +19,11 @@ package opennlp.tools.cmdline.tokenizer;
import java.io.File;
-import opennlp.tools.cmdline.BaseCLITool;
+import opennlp.tools.cmdline.AbstractBasicCmdLineTool;
import opennlp.tools.cmdline.CLI;
import opennlp.tools.tokenize.TokenizerModel;
-public final class TokenizerMETool extends BaseCLITool {
+public final class TokenizerMETool extends AbstractBasicCmdLineTool {
public String getShortDescription() {
return "learnable tokenizer";