package com.supaham.commons; import static com.google.common.base.Preconditions.checkState; import com.google.common.base.Preconditions; import java.io.File; import java.util.logging.Logger; import javax.annotation.Nonnull; /** * Commons main class. * * @since 0.1 */ public class CMain { private static CMain CMAIN = null; private final File homeDirectory = new File("supacommons/"); private final Logger logger; /** * Gets the instance of this singleton class. * * @return {@link CMain} instance. */ public static CMain get() { return CMain.CMAIN; } public static void main(@Nonnull Logger logger) { Preconditions.checkNotNull(logger, "logger cannot be null."); checkState(CMain.CMAIN == null, "already initialized."); CMain.CMAIN = new CMain(logger); } public static Logger getLogger() { return get().logger; } public static File getHomeDirectory() { return get().homeDirectory; } private CMain(@Nonnull Logger logger) { Preconditions.checkNotNull(logger, "logger cannot be null."); this.logger = logger; this.homeDirectory.mkdirs(); } }