jnetperf/src/main/java/biz/nellemann/jnetperf/TimeSuffixConverter.java

42 lines
1.3 KiB
Java
Raw Normal View History

2023-07-14 05:40:34 +00:00
package biz.nellemann.jnetperf;
import picocli.CommandLine;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TimeSuffixConverter implements CommandLine.ITypeConverter<Integer> {
2023-07-14 05:40:34 +00:00
final private Pattern pattern = Pattern.compile("(\\d+)([smh])?", Pattern.CASE_INSENSITIVE);
2023-07-14 05:40:34 +00:00
public Integer convert(String value) {
int seconds = 0;
2023-07-14 05:40:34 +00:00
Matcher matcher = pattern.matcher(value);
if (matcher.find()) {
int number = Integer.parseInt(matcher.group(1));
if(matcher.group(2) != null) { // We got the second, minute or hour suffix
2023-07-14 05:40:34 +00:00
String suffix = matcher.group(2);
switch (suffix.toLowerCase(Locale.ROOT)) {
case "s":
seconds = number;
2023-07-14 05:40:34 +00:00
break;
case "m":
seconds = number * 60;
2023-07-14 05:40:34 +00:00
break;
case "h":
seconds = number * 60 * 60;
2023-07-14 05:40:34 +00:00
break;
default:
throw new IllegalArgumentException("Unknown suffix: " + suffix);
2023-07-14 05:40:34 +00:00
}
} else {
seconds = number;
2023-07-14 05:40:34 +00:00
}
}
return seconds;
2023-07-14 05:40:34 +00:00
}
}