jkeyes 2004/02/17 14:11:17
Modified: cli/src/test/org/apache/commons/cli2/impl Tag:
RESEARCH_CLI_2_ROXSPRING ArgumentTest.java
ArgumentTestCase.java
cli/src/java/org/apache/commons/cli2/impl Tag:
RESEARCH_CLI_2_ROXSPRING ArgumentImpl.java
ParentImpl.java
cli/src/java/org/apache/commons/cli2 Tag:
RESEARCH_CLI_2_ROXSPRING Argument.java
Log:
- removed canPreProcess and preProcess methods from Argument
and added getInitialSeparator. Parent now performs the
"preprocessing"
Revision Changes Path
No revision
No revision
1.1.2.6 +0 -30
jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTest.java
Index: ArgumentTest.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTest.java,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -r1.1.2.5 -r1.1.2.6
--- ArgumentTest.java 17 Feb 2004 21:36:38 -0000 1.1.2.5
+++ ArgumentTest.java 17 Feb 2004 22:11:16 -0000 1.1.2.6
@@ -165,36 +165,6 @@
/*
* (non-Javadoc)
*
- * @see org.apache.commons.cli2.ArgumentTestCase#testPreProcess()
- */
- public void testPreProcess() {
- final Argument option = buildUsernameArgument();
- final List args = list("username=rob");
- final ListIterator iterator = args.listIterator();
- option.preProcess(iterator);
-
- assertTrue(iterator.hasNext());
- assertEquals("username=rob", iterator.next());
- assertListContentsEqual(list("username=rob"), args);
- }
-
- public void testPreProcess_Split() {
- final Argument option = buildPathArgument();
- final List args = list("-path=/lib;/usr/lib;/usr/local/lib");
- final ListIterator iterator = args.listIterator();
- option.preProcess(iterator);
-
- assertTrue(iterator.hasNext());
- assertEquals("-path", iterator.next());
- assertEquals("/lib;/usr/lib;/usr/local/lib", iterator.next());
- assertListContentsEqual(
- list("-path", "/lib;/usr/lib;/usr/local/lib"),
- args);
- }
-
- /*
- * (non-Javadoc)
- *
* @see org.apache.commons.cli2.ArgumentTestCase#testProcessValues()
*/
public void testProcessValues() throws OptionException {
1.1.2.4 +1 -2
jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTestCase.java
Index: ArgumentTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTestCase.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- ArgumentTestCase.java 8 Feb 2004 13:09:01 -0000 1.1.2.3
+++ ArgumentTestCase.java 17 Feb 2004 22:11:16 -0000 1.1.2.4
@@ -22,7 +22,6 @@
*/
public abstract class ArgumentTestCase extends OptionTestCase {
- public abstract void testPreProcess() throws OptionException;
-
public abstract void testProcessValues() throws OptionException;
+
}
No revision
No revision
1.1.2.6 +7 -38
jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ArgumentImpl.java
Index: ArgumentImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ArgumentImpl.java,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -r1.1.2.5 -r1.1.2.6
--- ArgumentImpl.java 8 Feb 2004 14:01:46 -0000 1.1.2.5
+++ ArgumentImpl.java 17 Feb 2004 22:11:16 -0000 1.1.2.6
@@ -44,7 +44,6 @@
private final int maximum;
private final char initialSeparator;
private final char subsequentSepatator;
- private final boolean initialSplit;
private final boolean subsequentSplit;
private final Validator validator;
private final String consumeRemaining;
@@ -106,7 +105,6 @@
this.maximum = maximum;
this.initialSeparator = initialSeparator;
this.subsequentSepatator = subsequentSeparator;
- this.initialSplit = initialSeparator != NUL;
this.subsequentSplit = subsequentSeparator != NUL;
this.validator = validator;
this.consumeRemaining = consumeRemaining;
@@ -149,27 +147,6 @@
public String getPreferredName() {
return name;
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.commons.cli2.Argument#preProcess(java.util.ListIterator)
- */
- public void preProcess(final ListIterator args) { //throws OptionException
- // {
-
- if (initialSplit) {
- final String argument = (String)args.next();
- final int initialIndex = argument.indexOf(initialSeparator);
- if (initialIndex > 0) {
- args.remove();
- args.add(argument.substring(0, initialIndex));
- args.add(argument.substring(initialIndex + 1));
- args.previous();
- }
- args.previous();
- }
-
- }
/*
* (non-Javadoc)
@@ -268,27 +245,19 @@
/*
* (non-Javadoc)
*
- * @see org.apache.commons.cli2.Option#triggers()
+ * @see org.apache.commons.cli2.Argument#getInitialSeparator()
*/
- public Set getTriggers() {
- return Collections.EMPTY_SET;
+ public char getInitialSeparator() {
+ return this.initialSeparator;
}
-
+
/*
* (non-Javadoc)
*
- * @see org.apache.commons.cli2.Argument#canPreProcess(java.lang.String)
+ * @see org.apache.commons.cli2.Option#triggers()
*/
- public String canPreProcess(final String arg) {
-
- if (initialSplit) {
- final int initialIndex = arg.indexOf(initialSeparator);
- if (initialIndex > 0) {
- return arg.substring(0, initialIndex);
- }
- }
-
- return arg;
+ public Set getTriggers() {
+ return Collections.EMPTY_SET;
}
/*
1.1.2.5 +41 -8
jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ParentImpl.java
Index: ParentImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ParentImpl.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- ParentImpl.java 8 Feb 2004 14:01:46 -0000 1.1.2.4
+++ ParentImpl.java 17 Feb 2004 22:11:16 -0000 1.1.2.5
@@ -34,6 +34,8 @@
*/
public abstract class ParentImpl extends OptionImpl implements Parent {
+ private static final char NUL = '\0';
+
private final Group children;
private final Argument argument;
@@ -63,7 +65,7 @@
throws OptionException {
if (argument != null) {
- argument.preProcess(arguments);
+ handleInitialSeparator(arguments, argument.getInitialSeparator());
}
processParent(commandLine, arguments);
@@ -84,15 +86,23 @@
*/
public boolean canProcess(final String arg) {
- final String trimmed;
+ final Set triggers = getTriggers();
+
if (argument != null) {
- trimmed = argument.canPreProcess(arg);
- }
- else {
- trimmed = arg;
+ final char separator = argument.getInitialSeparator();
+
+ // if there is a valid separator character
+ if (separator != NUL) {
+ final int initialIndex = arg.indexOf(separator);
+
+ // if there is a separator present
+ if (initialIndex > 0) {
+ return triggers.contains(arg.substring(0, initialIndex));
+ }
+ }
}
-
- return getTriggers().contains(trimmed);
+
+ return triggers.contains(arg);
}
/*
@@ -202,4 +212,27 @@
public Group getChildren() {
return children;
}
+
+ /**
+ * Split the token using the specified separator character.
+ */
+ private void handleInitialSeparator(
+ final ListIterator arguments,
+ final char separator) {
+
+ // next token
+ final String argument = (String)arguments.next();
+
+ // split the token
+ final int initialIndex = argument.indexOf(separator);
+
+ if (initialIndex > 0) {
+ arguments.remove();
+ arguments.add(argument.substring(0, initialIndex));
+ arguments.add(argument.substring(initialIndex + 1));
+ arguments.previous();
+ }
+ arguments.previous();
+ }
+
}
No revision
No revision
1.1.2.5 +8 -4
jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Argument.java
Index: Argument.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Argument.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- Argument.java 4 Feb 2004 02:01:50 -0000 1.1.2.4
+++ Argument.java 17 Feb 2004 22:11:16 -0000 1.1.2.5
@@ -25,10 +25,14 @@
*/
public interface Argument extends Option {
- String canPreProcess(final String arg);
-
- void preProcess(final ListIterator args); // throws OptionException;
-
+ /**
+ * Returns the initial separator character or
+ * '\0' if no character has been set.
+ *
+ * @return char the initial separator character
+ */
+ char getInitialSeparator();
+
/**
* Processes the "README" style element of the argument.
*
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]