diff options
Diffstat (limited to 'auth/cli-editor/src')
5 files changed, 181 insertions, 31 deletions
diff --git a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineArgument.java b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineArgument.java index f1a6e7867..6dd2f14ee 100644 --- a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineArgument.java +++ b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineArgument.java @@ -141,4 +141,54 @@ public class CommandLineArgument implements Comparable<CommandLineArgument> { } return description.compareTo(otherArgument.description); } + + /* (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((argumentName == null) ? 0 : argumentName.hashCode()); + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + (nullable ? 1231 : 1237); + return result; + } + + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (obj == null) { + return false; + } + + if (getClass() != obj.getClass()) { + return false; + } + + CommandLineArgument other = (CommandLineArgument) obj; + if (argumentName == null) { + if (other.argumentName != null) { + return false; + } + } else if (!argumentName.equals(other.argumentName)) { + return false; + } + + if (description == null) { + if (other.description != null) { + return false; + } + } else if (!description.equals(other.description)) { + return false; + } + + return nullable == other.nullable; + } } diff --git a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineCommand.java b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineCommand.java index 6c651cb6b..beba91554 100644 --- a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineCommand.java +++ b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineCommand.java @@ -214,12 +214,33 @@ public class CommandLineCommand implements Comparable<CommandLineCommand> { return this.hashCode() - otherCommand.hashCode(); } - final CommandLineCommand other = otherCommand; + int result = compareKeywordList(otherCommand); + if (result != 0) { + return result; + } + + if (!argumentList.equals(otherCommand.argumentList)) { + return (argumentList.hashCode() - otherCommand.argumentList.hashCode()); + } + + if (systemCommand != otherCommand.systemCommand) { + return (this.hashCode() - otherCommand.hashCode()); + } + + return apiMethod.compareTo(otherCommand.apiMethod); + } + /** + * Compare the keyword lists of the commands. + * + * @param otherCommand the command to compare with + * @return the int + */ + private int compareKeywordList(final CommandLineCommand otherCommand) { for (int i = 0, j = 0;; i++, j++) { if (i < keywordlist.size() && j < otherCommand.keywordlist.size()) { - if (!keywordlist.get(i).equals(other.keywordlist.get(j))) { - return keywordlist.get(i).compareTo(other.keywordlist.get(j)); + if (!keywordlist.get(i).equals(otherCommand.keywordlist.get(j))) { + return keywordlist.get(i).compareTo(otherCommand.keywordlist.get(j)); } } else if (i == keywordlist.size() && j == otherCommand.keywordlist.size()) { break; @@ -229,12 +250,43 @@ public class CommandLineCommand implements Comparable<CommandLineCommand> { return 1; } } - if (!argumentList.equals(other.argumentList)) { - return (argumentList.hashCode() - other.argumentList.hashCode()); + + return 0; + } + + /* (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((apiMethod == null) ? 0 : apiMethod.hashCode()); + result = prime * result + argumentList.hashCode(); + result = prime * result + ((description == null) ? 0 : description.hashCode()); + result = prime * result + keywordlist.hashCode(); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + (systemCommand ? 1231 : 1237); + return result; + } + + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (obj == null) { + return false; } - if (systemCommand != other.systemCommand) { - return (this.hashCode() - other.hashCode()); + + if (getClass() != obj.getClass()) { + return false; } - return apiMethod.compareTo(other.apiMethod); + + return this.compareTo((CommandLineCommand) obj) == 0; } } diff --git a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineEditorLoop.java b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineEditorLoop.java index 4f0aeb58b..b5e82103d 100644 --- a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineEditorLoop.java +++ b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineEditorLoop.java @@ -58,6 +58,7 @@ public class CommandLineEditorLoop { // Recurring string constants private static final String COMMAND = "command "; + private static final String COMMAND_LINE_ERROR = "command line error"; // The model handler that is handling the API towards the Apex model being editied private final ApexModelHandler modelHandler; @@ -134,7 +135,7 @@ public class CommandLineEditorLoop { catch (final CommandLineException e) { writer.println(e.getMessage()); errorCount++; - LOGGER.debug("command line error", e); + LOGGER.debug(COMMAND_LINE_ERROR, e); continue; } @@ -163,7 +164,7 @@ public class CommandLineEditorLoop { catch (final CommandLineException e) { writer.println(e.getMessage()); errorCount++; - LOGGER.debug("command line error", e); + LOGGER.debug(COMMAND_LINE_ERROR, e); continue; } @@ -204,10 +205,10 @@ public class CommandLineEditorLoop { catch (final CommandLineException e) { writer.println(e.getMessage()); errorCount++; - LOGGER.debug("command line error", e); + LOGGER.debug(COMMAND_LINE_ERROR, e); } catch (final Exception e) { e.printStackTrace(writer); - LOGGER.error("command line error", e); + LOGGER.error(COMMAND_LINE_ERROR, e); } } diff --git a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParameterParser.java b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParameterParser.java index a37d07fab..3465a6dd8 100644 --- a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParameterParser.java +++ b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParameterParser.java @@ -107,6 +107,45 @@ public class CommandLineParameterParser { "too many command line arguments specified : " + Arrays.toString(remainingArgs)); } + parseSIngleLetterOptions(commandLine, parameters); + parseDoubleLetterOptions(commandLine, parameters); + + return parameters; + } + + /** + * Parse options with just a single letter. + * + * @param commandLine the command line + * @param parameters the parsed parameters + */ + private void parseDoubleLetterOptions(CommandLine commandLine, final CommandLineParameters parameters) { + if (commandLine.hasOption("nl")) { + parameters.setSuppressLog(true); + } + if (commandLine.hasOption("nm")) { + parameters.setSuppressModelOutput(true); + } + if (commandLine.hasOption("if")) { + parameters.setIgnoreCommandFailuresSet(true); + parameters.setIgnoreCommandFailures(Boolean.valueOf(commandLine.getOptionValue("if"))); + } else { + parameters.setIgnoreCommandFailuresSet(false); + } + if (commandLine.hasOption("wd")) { + parameters.setWorkingDirectory(commandLine.getOptionValue("wd")); + } else { + parameters.setWorkingDirectory(Paths.get("").toAbsolutePath().toString()); + } + } + + /** + * Parse options with two letters. + * + * @param commandLine the command line + * @param parameters the parsed parameters + */ + private void parseSIngleLetterOptions(CommandLine commandLine, final CommandLineParameters parameters) { if (commandLine.hasOption('h')) { parameters.setHelp(true); } @@ -122,31 +161,12 @@ public class CommandLineParameterParser { if (commandLine.hasOption('l')) { parameters.setLogFileName(commandLine.getOptionValue('l')); } - if (commandLine.hasOption("nl")) { - parameters.setSuppressLog(true); - } - if (commandLine.hasOption("nm")) { - parameters.setSuppressModelOutput(true); - } if (commandLine.hasOption('i')) { parameters.setInputModelFileName(commandLine.getOptionValue('i')); } if (commandLine.hasOption('o')) { parameters.setOutputModelFileName(commandLine.getOptionValue('o')); } - if (commandLine.hasOption("if")) { - parameters.setIgnoreCommandFailuresSet(true); - parameters.setIgnoreCommandFailures(Boolean.valueOf(commandLine.getOptionValue("if"))); - } else { - parameters.setIgnoreCommandFailuresSet(false); - } - if (commandLine.hasOption("wd")) { - parameters.setWorkingDirectory(commandLine.getOptionValue("wd")); - } else { - parameters.setWorkingDirectory(Paths.get("").toAbsolutePath().toString()); - } - - return parameters; } /** diff --git a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/KeywordNode.java b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/KeywordNode.java index c8bc7a083..c16bbf568 100644 --- a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/KeywordNode.java +++ b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/KeywordNode.java @@ -186,4 +186,31 @@ public class KeywordNode implements Comparable<KeywordNode> { } return command.compareTo(otherKeywordNode.command); } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((children == null) ? 0 : children.hashCode()); + result = prime * result + ((command == null) ? 0 : command.hashCode()); + result = prime * result + ((keyword == null) ? 0 : keyword.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (obj == null) { + return false; + } + + if (getClass() != obj.getClass()) { + return false; + } + + return this.compareTo((KeywordNode) obj) == 0; + } } |