package codeine.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Collection; import java.util.Date; import com.google.common.base.Function; public class StringUtils { public static String EMPTY = ""; public static String formatTimePeriod(long millis) { long seconds = (millis / 1000) % 60; long minutes = (millis / (1000 * 60)) % 60; long hours = (millis / (1000 * 60 * 60));// %24; long onlyMillis = millis % 1000; boolean hasMillis = onlyMillis > 0; if (hours > 0){ String format = "%d:%02d:%02d"; if (hasMillis){ format += ".%03d"; } else { format += ".0"; } return String.format(format, hours, minutes, seconds, onlyMillis); } else if (minutes > 0){ String format = "%d:%02d"; if (hasMillis){ format += ".%03d"; } else { format += ".0"; } return String.format(format, minutes, seconds, onlyMillis); } else if (seconds > 0){ String format = "%d"; if (hasMillis){ format += ".%03d seconds"; } else { format += ".0 seconds"; } return String.format(format, seconds, onlyMillis); } else { return String.format("%d milliseconds", onlyMillis); } } public static String formatDate(long date) { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm - dd/MM/yyyy"); Date resultdate = new Date(date); return sdf.format(resultdate); } public static Date parseDate(String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm - dd/MM/yyyy"); return sdf.parse(date); } public static String[] getEnumNames(Class<? extends Enum<?>> e) { return Arrays.toString(e.getEnumConstants()).replaceAll("\\[|]", "").split(", "); } public static boolean isEmpty(String string) { return null == string || "".equals(string.trim()); } public static String safeToString(Object obj) { if (null == obj){ return ""; } return obj.toString(); } public static String nullSafeToString(Object obj) { if (null == obj){ return "null"; } return obj.toString(); } public static String collectionToString(Collection<?> c){ return collectionToString(c, " "); } @SuppressWarnings({ "rawtypes", "unchecked" }) public static String collectionToString(Collection<?> c, String delimiter) { Function predicate = new Function<Object, String>() { @Override public String apply(Object input) { return nullSafeToString(input); } }; return collectionToString(c, predicate, delimiter); } public static <T> String collectionToString(Collection<T> c, Function<T, String> function){ return collectionToString(c, function, " "); } private static <T> String collectionToString(Collection<T> c, Function<T, String> function, String delimiter) { String $ = ""; boolean first = true; for (T object : c) { if (first){ first = false; } else { $ += delimiter; } $ += function.apply(object); } return $; } public static String toLowerCase(String string) { if (null == string) { return null; } return string.toLowerCase(); } public static String trimStringToMaxLength(String s, int size) { if (s.length() > size) { String substring = s.substring(0, size); int lastIndexOf = substring.lastIndexOf(" "); return lastIndexOf == -1 ? substring + "... and some more." : substring.substring(0, lastIndexOf) + "... and some more."; } return s; } public static String arrayToString(Object[] arr) { return collectionToString(Arrays.asList(arr)); } }