diff options
author | arkadiusz.adamski <aadamski@est.tech> | 2021-03-24 16:24:22 +0000 |
---|---|---|
committer | Ajith Sreekumar <ajith.sreekumar@bell.ca> | 2021-03-29 17:36:22 +0000 |
commit | fd5a6566d0e12540b4ac49b24603bae26666ab94 (patch) | |
tree | 2c632dc755930aa571b62a9d9a4a6be569836f0f | |
parent | c2f7bba321df740d134da7da1a19d7d38b867799 (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
2 files changed, 21 insertions, 33 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)); } } diff --git a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/HeaderDelimitedTextBlockReader.java b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/HeaderDelimitedTextBlockReader.java index 5531d9704..67b7cb871 100644 --- a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/HeaderDelimitedTextBlockReader.java +++ b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/event/impl/filecarrierplugin/consumer/HeaderDelimitedTextBlockReader.java @@ -1,19 +1,20 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * 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. * 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. - * + * * SPDX-License-Identifier: Apache-2.0 * ============LICENSE_END========================================================= */ @@ -50,7 +51,7 @@ public class HeaderDelimitedTextBlockReader implements TextBlockReader, Runnable // Indicates that text block processing starts at the first block of text private final boolean delimiterAtStart; - private boolean blockEndTokenUsed = false; + private boolean blockEndTokenUsed; // The thread used to read the text from the stream private Thread textConsumputionThread; @@ -170,9 +171,7 @@ public class HeaderDelimitedTextBlockReader implements TextBlockReader, Runnable */ @Override public void run() { - final BufferedReader textReader = new BufferedReader(new InputStreamReader(inputStream)); - - try { + try (BufferedReader textReader = new BufferedReader(new InputStreamReader(inputStream))) { // Read the input line by line until we see end of file on the stream String line; while ((line = textReader.readLine()) != null) { |