summaryrefslogtreecommitdiffstats
path: root/auth/cli-editor
diff options
context:
space:
mode:
authorarkadiusz.adamski <aadamski@est.tech>2021-03-24 16:24:22 +0000
committerAjith Sreekumar <ajith.sreekumar@bell.ca>2021-03-29 17:36:22 +0000
commitfd5a6566d0e12540b4ac49b24603bae26666ab94 (patch)
tree2c632dc755930aa571b62a9d9a4a6be569836f0f /auth/cli-editor
parentc2f7bba321df740d134da7da1a19d7d38b867799 (diff)
Fix sonar issues
- reduce methods Cognitive Complexity from 19 to the 15 allowed in CommandLineParser - iteration replaced with bulk 'Collection.addAll' call - remove redundant initializers - replace try with try-with-resources Issue-ID: POLICY-3093 Signed-off-by: arkadiusz.adamski <aadamski@est.tech> Change-Id: Ia727b3145ef8f63bcfc07723191c85e1ec8c923c
Diffstat (limited to 'auth/cli-editor')
-rw-r--r--auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParser.java41
1 files changed, 15 insertions, 26 deletions
diff --git a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParser.java b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParser.java
index 05066adb4..c9316cbd2 100644
--- a/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParser.java
+++ b/auth/cli-editor/src/main/java/org/onap/policy/apex/auth/clieditor/CommandLineParser.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2020 Nordix Foundation.
+ * Modifications Copyright (C) 2020-2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -79,7 +79,7 @@ public class CommandLineParser {
private ArrayList<String> mergeQuotes(final ArrayList<String> wordsSplitOnQuotes) {
final ArrayList<String> wordsWithQuotesMerged = new ArrayList<>();
- int loopWordIndex = 0;
+ int loopWordIndex;
for (int wordIndex = 0; wordIndex < wordsSplitOnQuotes.size(); wordIndex = loopWordIndex) {
loopWordIndex = mergeQuote(wordsSplitOnQuotes, wordsWithQuotesMerged, wordIndex);
}
@@ -140,9 +140,7 @@ public class CommandLineParser {
// Split on equals character
final ArrayList<String> splitWords = splitOnChar(word, '=');
- for (final String splitWord : splitWords) {
- wordsSplitOnEquals.add(splitWord);
- }
+ wordsSplitOnEquals.addAll(splitWords);
}
return wordsSplitOnEquals;
@@ -158,7 +156,7 @@ public class CommandLineParser {
private ArrayList<String> mergeEquals(final ArrayList<String> wordsSplitOnEquals) {
final ArrayList<String> wordsWithEqualsMerged = new ArrayList<>();
- int loopWordIndex = 0;
+ int loopWordIndex;
for (int wordIndex = 0; wordIndex < wordsSplitOnEquals.size(); wordIndex = loopWordIndex) {
loopWordIndex = wordIndex;
@@ -315,39 +313,30 @@ public class CommandLineParser {
// The first word must be alphanumeric, that is a command
if (!commandWords.get(0).matches("^[a-zA-Z0-9]*$")) {
throw new CommandLineException(
- "first command word is not alphanumeric or is not a command: " + commandWords.get(0));
+ "first command word is not alphanumeric or is not a command: " + commandWords.get(0));
}
// Now check that we have a sequence of commands at the beginning
int currentWordPos = 0;
- while (currentWordPos < commandWords.size()) {
- if (commandWords.get(currentWordPos).matches("^[a-zA-Z0-9]*$")) {
- currentWordPos++;
- } else {
+ for (; currentWordPos < commandWords.size(); currentWordPos++) {
+ if (!commandWords.get(currentWordPos).matches("^[a-zA-Z0-9]*$")) {
break;
}
}
- while (currentWordPos < commandWords.size()) {
- // From now on we should have a sequence of parameters with arguments delimited by a
- // single '=' character
- if (currentWordPos < commandWords.size() - 1 || logicBlock == null) {
- // No logic block
- if (commandWords.get(currentWordPos).matches("^[a-zA-Z0-9]+=[a-zA-Z0-9/\"].*$")) {
- currentWordPos++;
- } else {
- throw new CommandLineException(
- "command argument is not properly formed: " + commandWords.get(currentWordPos));
- }
- } else {
- // Logic block
+ for (; currentWordPos < commandWords.size(); ++currentWordPos) {
+ if (currentWordPos == commandWords.size() - 1 && logicBlock != null) {
+ // for the last command, if the command ends with = and there is a Logic block
if (commandWords.get(currentWordPos).matches("^[a-zA-Z0-9]+=")) {
commandWords.set(currentWordPos, commandWords.get(currentWordPos) + logicBlock);
- currentWordPos++;
} else {
throw new CommandLineException(
- "command argument is not properly formed: " + commandWords.get(currentWordPos));
+ "command argument is not properly formed: " + commandWords.get(currentWordPos));
}
+ } else if (!commandWords.get(currentWordPos).matches("^[a-zA-Z0-9]+=[a-zA-Z0-9/\"].*$")) {
+ // Not a last command, or the last command, but there is no logic block - wrong pattern
+ throw new CommandLineException(
+ "command argument is not properly formed: " + commandWords.get(currentWordPos));
}
}