package io.fathom.auto.processes; import java.io.File; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Charsets; import com.google.common.base.Strings; import com.google.common.io.Files; public class Pid { private static final Logger log = LoggerFactory.getLogger(Pid.class); final long pid; public Pid(long pid) { this.pid = pid; } public static Pid read(File pidFile) throws IOException { String pidString = null; Long pid = null; if (pidFile.exists()) { pidString = Files.toString(pidFile, Charsets.UTF_8); } if (!Strings.isNullOrEmpty(pidString)) { pidString = pidString.trim(); try { pid = Long.valueOf(pidString); } catch (NumberFormatException e) { log.warn("Error parsing pid file contents: {}", pidString); } } if (pid == null) { return null; } return new Pid(pid); } public long getValue() { return pid; } @Override public String toString() { return "Pid[" + pid + "]"; } }