1 package org.openecomp.sdc.be.components.utils;
3 import org.apache.tinkerpop.shaded.minlog.Log;
5 import javax.validation.constraints.NotNull;
6 import java.security.SecureRandom;
8 import java.util.regex.Matcher;
9 import java.util.regex.Pattern;
13 private static final Pattern COUNTER_PATTERN = Pattern.compile("\\d+$");
14 private static final SecureRandom random = new SecureRandom();
19 public static int getNextCounter(@NotNull List<String> existingValues) {
20 if (existingValues.isEmpty()) {
23 int maxCurrentCounter = 0;
25 maxCurrentCounter = existingValues.stream()
26 .map(COUNTER_PATTERN::matcher)
27 .filter(Matcher::find)
28 .map(matcher -> matcher.group(0))
29 .mapToInt(Integer::parseInt)
34 Log.warn("Failed in retrieivng counter from existing value: ", e);
35 maxCurrentCounter = random.nextInt(100) + 50;
37 return ++maxCurrentCounter;