X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fdatarouter%2Futil%2FSearchSuggestionPermutation.java;fp=src%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fdatarouter%2Futil%2FSearchSuggestionPermutation.java;h=0a72ce5ea72b3095601e194a46081002d9770999;hb=5397f3a9420c685745a4f7057a21271ef44fda22;hp=fbf7c5b68f7a227707e189268ed50d566cb8526b;hpb=44147a30af456e7e932852d6efb8fff55d857481;p=aai%2Fdata-router.git diff --git a/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java b/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java index fbf7c5b..0a72ce5 100644 --- a/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java +++ b/src/main/java/org/openecomp/datarouter/util/SearchSuggestionPermutation.java @@ -8,16 +8,16 @@ * 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 - * + *

+ * 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. * ============LICENSE_END========================================================= - * + *

* ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.openecomp.datarouter.util; @@ -26,73 +26,73 @@ import java.util.ArrayList; import java.util.List; public class SearchSuggestionPermutation { - /* - * Will return all the unique combinations of the suggestions provided. - * The order of the permutation is not taken into account when computing - * the uniqueness. - * e.g.: A list of A,B,C,D will return - * [[A], [A, B, C, D], [A, C, D], [A, D], [B], [B, C, D], [B, D], [C], [C, D], [D]] - * - * @param list The list of statuses to create permutations of - * @return A list which contains a array list of all possible combinations - */ - public static ArrayList> getUniqueListForSuggestions( - List originalList) { - ArrayList> lists = new ArrayList>(); - if (originalList.isEmpty()) { - lists.add(new ArrayList()); - return lists; - } - List list = new ArrayList(originalList); - String head = list.get(0); - ArrayList rest = new ArrayList(list.subList(1, list.size())); - - for (ArrayList activeList : getUniqueListForSuggestions(rest)) { - ArrayList newList = new ArrayList(); - newList.add(head); - newList.addAll(activeList); - lists.add(newList); - lists.add(activeList); - } - return lists; - } - - public static ArrayList> getNonEmptyUniqueLists(List list){ - ArrayList> lists = getUniqueListForSuggestions(list); - // remove empty list from the power set - for (ArrayList emptyList : lists ){ - if ( emptyList.isEmpty() ) { - lists.remove(emptyList); - break; - } + /* + * Will return all the unique combinations of the suggestions provided. + * The order of the permutation is not taken into account when computing + * the uniqueness. + * e.g.: A list of A,B,C,D will return + * [[A], [A, B, C, D], [A, C, D], [A, D], [B], [B, C, D], [B, D], [C], [C, D], [D]] + * + * @param list The list of statuses to create permutations of + * @return A list which contains a array list of all possible combinations + */ + public static ArrayList> getUniqueListForSuggestions( + List originalList) { + ArrayList> lists = new ArrayList<>(); + if (originalList.isEmpty()) { + lists.add(new ArrayList()); + return lists; + } + List list = new ArrayList<>(originalList); + String head = list.get(0); + ArrayList rest = new ArrayList<>(list.subList(1, list.size())); + + for (ArrayList activeList : getUniqueListForSuggestions(rest)) { + ArrayList newList = new ArrayList<>(); + newList.add(head); + newList.addAll(activeList); + lists.add(newList); + lists.add(activeList); + } + return lists; } - return lists; - } - public static List> getListPermutations(List list) { - List inputList = new ArrayList(); - inputList.addAll(list); - if (inputList.size() == 0) { - List> result = new ArrayList>(); - result.add(new ArrayList()); - return result; + public static ArrayList> getNonEmptyUniqueLists(List list) { + ArrayList> lists = getUniqueListForSuggestions(list); + // remove empty list from the power set + for (ArrayList emptyList : lists) { + if (emptyList.isEmpty()) { + lists.remove(emptyList); + break; + } + } + return lists; } - List> listOfLists = new ArrayList>(); + public static List> getListPermutations(List list) { + List inputList = new ArrayList<>(); + inputList.addAll(list); + if (inputList.isEmpty()) { + List> result = new ArrayList<>(); + result.add(new ArrayList()); + return result; + } + + List> listOfLists = new ArrayList<>(); - String firstElement = inputList.remove(0); + String firstElement = inputList.remove(0); - List> recursiveReturn = getListPermutations(inputList); - for (List li : recursiveReturn) { + List> recursiveReturn = getListPermutations(inputList); + for (List li : recursiveReturn) { - for (int index = 0; index <= li.size(); index++) { - List temp = new ArrayList(li); - temp.add(index, firstElement); - listOfLists.add(temp); - } + for (int index = 0; index <= li.size(); index++) { + List temp = new ArrayList<>(li); + temp.add(index, firstElement); + listOfLists.add(temp); + } + } + return listOfLists; } - return listOfLists; - } }