You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by bf...@apache.org on 2011/11/25 05:35:19 UTC
svn commit: r1206056 - in
/oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli: help/
printer/StdCmdLinePrinter.java util/CmdLineUtils.java
Author: bfoster
Date: Fri Nov 25 04:35:18 2011
New Revision: 1206056
URL: http://svn.apache.org/viewvc?rev=1206056&view=rev
Log:
- removed unused help directory
- StdCmdLinePrinter didn't print optional sub-options for group options... fixed!
----------
OODT-354
Removed:
oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/help/
Modified:
oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java
oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/util/CmdLineUtils.java
Modified: oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java
URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java?rev=1206056&r1=1206055&r2=1206056&view=diff
==============================================================================
--- oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java (original)
+++ oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java Fri Nov 25 04:35:18 2011
@@ -19,6 +19,7 @@ package org.apache.oodt.cas.cli.printer;
//OODT static imports
import static org.apache.oodt.cas.cli.util.CmdLineUtils.asGroupOption;
import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineOptional;
+import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineRelevantSubOptions;
import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineRequired;
import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineRequiredSubOptions;
import static org.apache.oodt.cas.cli.util.CmdLineUtils.getFormattedString;
@@ -40,8 +41,8 @@ import org.apache.oodt.cas.cli.option.Cm
import org.apache.oodt.cas.cli.option.GroupCmdLineOption;
import org.apache.oodt.cas.cli.option.GroupSubOption;
import org.apache.oodt.cas.cli.option.validator.CmdLineOptionValidator.Result;
-import org.apache.oodt.cas.cli.util.CmdLineUtils;
+//Google imports
import com.google.common.collect.Lists;
/**
@@ -131,12 +132,12 @@ public class StdCmdLinePrinter implement
protected String getGroupHelp(CmdLineAction action,
GroupCmdLineOption option, String indent) {
- String helpString = getOptionHelp(action, option, indent) + "\n";
+ String helpString = getOptionHelp(action, option, indent);
Set<CmdLineOption> subOptions = determineRequiredSubOptions(action,
(GroupCmdLineOption) option);
if (subOptions.isEmpty()) {
if (!option.getSubOptions().isEmpty()) {
- helpString += indent + " One of:";
+ helpString += "\n" + indent + " One of:";
for (GroupSubOption subOption : option.getSubOptions()) {
helpString += "\n"
+ getOptionHelp(action, subOption.getOption(), " "
@@ -144,13 +145,18 @@ public class StdCmdLinePrinter implement
}
}
} else {
- for (CmdLineOption subOption : subOptions) {
+ for (CmdLineOption subOption : determineRelevantSubOptions(action,
+ option)) {
+ helpString += "\n";
if (subOption instanceof GroupCmdLineOption) {
helpString += getGroupHelp(action,
(GroupCmdLineOption) subOption, " " + indent);
} else {
helpString += getOptionHelp(action, subOption, " " + indent);
}
+ helpString += " "
+ + (subOptions.contains(subOption) ? "(required)"
+ : "(optional)");
}
}
return helpString;
Modified: oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/util/CmdLineUtils.java
URL: http://svn.apache.org/viewvc/oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/util/CmdLineUtils.java?rev=1206056&r1=1206055&r2=1206056&view=diff
==============================================================================
--- oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/util/CmdLineUtils.java (original)
+++ oodt/trunk/cli/src/main/java/org/apache/oodt/cas/cli/util/CmdLineUtils.java Fri Nov 25 04:35:18 2011
@@ -83,6 +83,67 @@ public class CmdLineUtils {
return requiredOptions;
}
+ /**
+ * Determines the given {@link GroupCmdLineOption}'s sub-options which are
+ * affect the given {@link CmdLineAction}.
+ *
+ * @param action
+ * The {@link CmdLineAction} for which given
+ * {@link GroupCmdLineOption}'s sub-options will be determined
+ * relevant or not
+ * @param option
+ * The {@link GroupCmdLineOption} whose sub-options are in question
+ * of being relevant to the given {@link CmdLineAction}
+ * @return The {@link GroupCmdLineOption}'s sub-options who are relevant to
+ * given {@link CmdLineAction}
+ */
+ public static Set<CmdLineOption> determineRelevantSubOptions(
+ CmdLineAction action, GroupCmdLineOption option) {
+ Set<CmdLineOption> relevantOptions = Sets.newHashSet();
+ for (GroupSubOption subOption : option.getSubOptions()) {
+ if (subOption.isRequired()
+ || isRequired(action, subOption.getOption())
+ || isOptional(action, subOption.getOption())) {
+ relevantOptions.add(subOption.getOption());
+ }
+ }
+ return relevantOptions;
+ }
+
+ /**
+ * Determines the sub-options of given {@link GroupCmdLineOption} who are
+ * always required.
+ *
+ * @param option
+ * The {@link GroupCmdLineOption} whose sub-options are check where
+ * they are required
+ * @return The required sub-options of given {@link GroupCmdLineOption}
+ */
+ public static Set<CmdLineOption> determineRequiredSubOptions(
+ GroupCmdLineOption option) {
+ Validate.notNull(option);
+
+ Set<CmdLineOption> requiredOptions = Sets.newHashSet();
+ for (GroupSubOption subOption : option.getSubOptions()) {
+ if (subOption.isRequired()) {
+ requiredOptions.add(subOption.getOption());
+ }
+ }
+ return requiredOptions;
+ }
+
+ /**
+ * Determines the sub-options of given {@link GroupCmdLineOption} who are
+ * either always required for become requried when given
+ * {@link CmdLineAction} is specified.
+ *
+ * @param action
+ * The specified {@link CmdLineAction}
+ * @param option
+ * The {@link GroupCmdLineOption} whose sub-options are checked if
+ * they are required
+ * @return The given {@link GroupCmdLineOption}'s required sub-options
+ */
public static Set<CmdLineOption> determineRequiredSubOptions(
CmdLineAction action, GroupCmdLineOption option) {
Validate.notNull(action);