Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.home; import java.io.File; import java.util.Map; import java.util.Properties; import com.google.common.base.Strings; public final class HomeResolver { private final Properties systemProperties; public HomeResolver() { this.systemProperties = new Properties(); } public void addSystemProperties(final Properties props) { this.systemProperties.putAll(props); } public void addSystemProperties(final Map<String, String> map) { this.systemProperties.putAll(map); } public HomeDir resolve() { final File dir = validatePath(resolvePath()); return new HomeDir(dir); } private String resolvePath() { String path = this.systemProperties.getProperty("cms.home"); if (!Strings.isNullOrEmpty(path)) { return path; } path = this.systemProperties.getProperty("CMS_HOME"); if (!Strings.isNullOrEmpty(path)) { return path; } throw new IllegalArgumentException( "Home directory not set. Please set either [cms.home] system property or [CMS_HOME] environment variable."); } private File validatePath(final String path) { final File dir = new File(path).getAbsoluteFile(); if (!dir.exists() || !dir.isDirectory()) { throw new IllegalArgumentException("Invalid home directory: [" + path + "] is not a directory"); } return dir; } }