package rmblworx.tools.timey;
import java.io.Closeable;
import java.io.IOException;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* Helferklasse mit häufig benötigten Funktionen.
*
* @author mmatthies
*/
public final class TimeyUtils {
/**
* Linux-Kennung.
*/
private static final String LINUX = "linux";
/**
* OS X-Kennung.
*/
private static final String MAC_OS_X = "mac os x";
/**
* Konstante für das Property zum erfragen des Betriebsystems.
*/
private static final String SYSTEM_PROPERTY_OS_NAME = "os.name";
/**
* Windows-Kennung.
*/
private static final String WINDOWS = "windows";
/**
* Liefert den Namen des Betriebsystems.
*
* @return Namenkuerzel des OS.
*/
public static String getOsName() {
return System.getProperty(SYSTEM_PROPERTY_OS_NAME).toLowerCase();
}
/**
* Prueft die Zeichenkette ob sie {@code Länge == 0} aufweist.
*
* @param string
* zu pruefende Zeichenkette.
* @return true wenn {@code Länge == 0}.
*/
public static boolean isEmpty(final String string) {
return string.length() < 1;
}
/**
* Liefert die Antwort darauf, ob timey gerade auf einem Linux Betriebssystem ausgefuehrt wird.
*
* @return true wenn Linux sonst false
*/
public static boolean isLinuxSystem() {
final String osName = getOsName();
return osName.indexOf(LINUX) != -1;
}
/**
* Prueft die Zeichenkette ob sie {@code null} referenziert.
*
* @param string
* zu pruefende Zeichenkette.
* @return true wenn {@code null} referenziert wird.
*/
public static boolean isNull(final String string) {
return string == null;
}
/**
* Prueft die Zeichenkette(n) ob sie {@code null} referenzieren oder die {@code Länge == 0} aufweisen.
*
* @param string
* zu pruefende Zeichenkette.
* @return true wenn auch nur eine Zeichenkette {@code null} oder die {@code Länge == 0} aufweist.
*/
public static boolean isNullOrEmpty(final String... string) {
boolean result = false;
for (final String str : string) {
if (isNull(str) || isEmpty(str)) {
result = true;
break;
}
}
return result;
}
/**
* Liefert die Antwort darauf, ob timey gerade auf einem OS X-Betriebssystem ausgefuehrt wird.
*
* @return true wenn OS X sonst false
*/
public static boolean isOSXSystem() {
final String osName = getOsName();
return osName.indexOf(MAC_OS_X) != -1;
}
/**
* Liefert die Antwort darauf, ob timey gerade auf einem Windows-Betriebssystem ausgefuehrt wird.
*
* @return true wenn Windows sonst false
*/
public static boolean isWindowsSystem() {
final String osName = getOsName();
return osName.indexOf(WINDOWS) != -1;
}
/**
* Schließt eine Ressource. Eventuell auftretende Fehler werden ignoriert.
*
* @param closeable Ressource
*/
public static void closeQuietly(final Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (final IOException e) {
// ignorieren
}
}
}
/**
* Konstruktor.
*/
private TimeyUtils() {
}
}