package org.infinispan.cli.interpreter.utils;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
public final class ParserSupport {
private static final Map<String, TimeUnit> TIMEUNITS;
static {
TIMEUNITS = new HashMap<String, TimeUnit>();
TIMEUNITS.put("d", TimeUnit.DAYS);
TIMEUNITS.put("h", TimeUnit.HOURS);
TIMEUNITS.put("m", TimeUnit.MINUTES);
TIMEUNITS.put("s", TimeUnit.SECONDS);
TIMEUNITS.put("ms", TimeUnit.MILLISECONDS);
}
/**
* Converts a time representation into milliseconds
*
* @param time
* @param timeUnit
* @return
*/
public static long millis(final String time, final String timeUnit) {
return TIMEUNITS.get(timeUnit).toMillis(Long.parseLong(time));
}
public static long millis(final String time) {
int s = time.length() - 1;
for (; time.charAt(s) > '9'; s--) {
}
return millis(time.substring(0, s + 1), time.substring(s + 1));
}
public static String unquote(final String s) {
if (s == null || s.length() < 2) {
return s;
}
char first = s.charAt(0);
char last = s.charAt(s.length() - 1);
if (first == last && (first == '\'' || first == '"')) {
return s.substring(1, s.length() - 1);
} else {
return s;
}
}
}