// Path: lib/src/main/java/com/sandwich/koan/constant/KoanConstants.java
// public static final String  PERIOD 				= ".";
// 
// Path: lib/src/main/java/com/sandwich/util/io/directories/DirectoryManager.java
// public abstract class DirectoryManager {
// 	
// 	private DirectoryManager(){}
// 	
// 	private static DirectorySet production = new ProductionDirectories();
// 	private static DirectorySet instance = production;
// 	
// 	public static final String FILESYSTEM_SEPARATOR	= System.getProperty("file.separator");
// 	
// 	public static void setDirectorySet(DirectorySet lInstance){
// 		instance = lInstance;
// 	}
// 	
// 	public static String getMainDir(){
// 		return constructMainDir(instance);
// 	}
// 	
// 	public static String getProdMainDir() {
// 		return constructMainDir(production);
// 	}
// 	
// 	private static String constructMainDir(DirectorySet directories){
// 		return injectFileSystemSeparators(	directories.getBaseDir(),
// 											directories.getProjectDir());
// 	}
// 	
// 	public static String getConfigDir(){
// 		return injectFileSystemSeparators(	instance.getBaseDir(),
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getConfigDir());
// 	}
// 	
// 	public static String getSourceDir(){
// 		return constructProjectDir(instance, instance.getSourceDir());
// 	}
// 	
// 	public static String getProdSourceDir(){
// 		return constructProjectDir(production, production.getSourceDir());
// 	}
// 	
// 	public static String getBinDir(){
// 		return injectFileSystemSeparators(  instance.getBaseDir(),
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getBinaryDir());
// 	}
// 	
// 	public static String getDataDir() {
// 		return injectFileSystemSeparators(	instance.getBaseDir(), 
// 											production.getProjectDir(),
// 											instance.getAppDir(), 
// 											instance.getDataDir());
// 	}
// 	
// 	private static String constructProjectDir(DirectorySet directories, String childDir){
// 		return injectFileSystemSeparators(	directories.getBaseDir(), 
// 											directories.getProjectDir(), 
// 											childDir);
// 	}
// 	
// 	public static String getProjectLibraryDir(){
// 		return injectFileSystemSeparators(	instance.getBaseDir(), 
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getLibrariesDir());
// 	}
// 	
// 	public static String getProjectI18nDir(){
// 		return injectFileSystemSeparators(	instance.getBaseDir(),
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getConfigDir(), 
// 											instance.getI18nDir());
// 	}
// 	
// 	public static String getProjectDataSourceDir() {
// 		return injectFileSystemSeparators(getDataDir(), instance.getSourceDir());
// 	}
// 	
// 	public static String getDataFile() {
// 		return injectFileSystemSeparators(getConfigDir(), "file_hashes.dat");
// 	}
// 	
// 	/**
// 	 * Will take "home", "wilford", "liberty" and produce: "/home/wilford/liberty"
// 	 * 
// 	 * @param folders
// 	 * @return concatenated folders w/ file separators
// 	 */
// 	public static String injectFileSystemSeparators(String...folders){
// 		StringBuilder builder = new StringBuilder();
// 		for(String folder : folders){
// 			if(FILESYSTEM_SEPARATOR.equals(folder)){
// 				continue;
// 			}
// 			builder.append(FILESYSTEM_SEPARATOR);
// 			while(folder.startsWith(FILESYSTEM_SEPARATOR)){
// 				folder = folder.substring(1);
// 			}
// 			while(folder.endsWith(FILESYSTEM_SEPARATOR)){
// 				folder = folder.substring(0, folder.lastIndexOf(FILESYSTEM_SEPARATOR));
// 			}
// 			builder.append(folder);
// 		}
// 		String constructedFolder = builder.toString();
// 		if(ApplicationUtils.isWindows()){
// 			if(constructedFolder.startsWith(FILESYSTEM_SEPARATOR)){
// 				constructedFolder = constructedFolder.substring(1);
// 			}
// 			constructedFolder = constructedFolder.replace("%20", " ");
// 		}
// 		return constructedFolder;
// 	}
// 	
// }


import static com.sandwich.koan.constant.KoanConstants.PERIOD;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.sandwich.util.io.directories.DirectoryManager;
			trimmed[i] = tmp[i].trim();
		}
		return trimmed;
	}
	 
	private static ResourceBundle getMessagesBundle(){
		if(MESSAGES_BUNDLE == null){
			return createResourceBundle();
		}
		return MESSAGES_BUNDLE;
	}

	/**
	 * conditionally create messages bundle for proper locale, not on classpath so need to handle manually
	 * @return a resource bundle for default locale, or USA if default locale's language has no translated messages
	 */
	static ResourceBundle createResourceBundle() {
		ResourceBundle temp = null;
		try {
			temp = new PropertyResourceBundle(new FileInputStream(
				DirectoryManager.injectFileSystemSeparators(
					DirectoryManager.getProjectI18nDir(), 
							new StringBuilder("messages_").append(
									Locale.getDefault().getLanguage()).append(
									".properties").toString())));
		} catch(FileNotFoundException x) {
			try {
				Logger.getLogger(Strings.class.getName()).log(Level.INFO, "Your default language is not supported yet. "+x.getLocalizedMessage());
				temp = new PropertyResourceBundle(new FileInputStream(
						DirectoryManager.injectFileSystemSeparators(
// Path: lib/src/main/java/com/sandwich/koan/constant/KoanConstants.java
// public static final String  PERIOD 				= ".";
// 
// Path: lib/src/main/java/com/sandwich/util/io/directories/DirectoryManager.java
// public abstract class DirectoryManager {
// 	
// 	private DirectoryManager(){}
// 	
// 	private static DirectorySet production = new ProductionDirectories();
// 	private static DirectorySet instance = production;
// 	
// 	public static final String FILESYSTEM_SEPARATOR	= System.getProperty("file.separator");
// 	
// 	public static void setDirectorySet(DirectorySet lInstance){
// 		instance = lInstance;
// 	}
// 	
// 	public static String getMainDir(){
// 		return constructMainDir(instance);
// 	}
// 	
// 	public static String getProdMainDir() {
// 		return constructMainDir(production);
// 	}
// 	
// 	private static String constructMainDir(DirectorySet directories){
// 		return injectFileSystemSeparators(	directories.getBaseDir(),
// 											directories.getProjectDir());
// 	}
// 	
// 	public static String getConfigDir(){
// 		return injectFileSystemSeparators(	instance.getBaseDir(),
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getConfigDir());
// 	}
// 	
// 	public static String getSourceDir(){
// 		return constructProjectDir(instance, instance.getSourceDir());
// 	}
// 	
// 	public static String getProdSourceDir(){
// 		return constructProjectDir(production, production.getSourceDir());
// 	}
// 	
// 	public static String getBinDir(){
// 		return injectFileSystemSeparators(  instance.getBaseDir(),
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getBinaryDir());
// 	}
// 	
// 	public static String getDataDir() {
// 		return injectFileSystemSeparators(	instance.getBaseDir(), 
// 											production.getProjectDir(),
// 											instance.getAppDir(), 
// 											instance.getDataDir());
// 	}
// 	
// 	private static String constructProjectDir(DirectorySet directories, String childDir){
// 		return injectFileSystemSeparators(	directories.getBaseDir(), 
// 											directories.getProjectDir(), 
// 											childDir);
// 	}
// 	
// 	public static String getProjectLibraryDir(){
// 		return injectFileSystemSeparators(	instance.getBaseDir(), 
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getLibrariesDir());
// 	}
// 	
// 	public static String getProjectI18nDir(){
// 		return injectFileSystemSeparators(	instance.getBaseDir(),
// 											production.getProjectDir(),
// 											instance.getAppDir(),
// 											instance.getConfigDir(), 
// 											instance.getI18nDir());
// 	}
// 	
// 	public static String getProjectDataSourceDir() {
// 		return injectFileSystemSeparators(getDataDir(), instance.getSourceDir());
// 	}
// 	
// 	public static String getDataFile() {
// 		return injectFileSystemSeparators(getConfigDir(), "file_hashes.dat");
// 	}
// 	
// 	/**
// 	 * Will take "home", "wilford", "liberty" and produce: "/home/wilford/liberty"
// 	 * 
// 	 * @param folders
// 	 * @return concatenated folders w/ file separators
// 	 */
// 	public static String injectFileSystemSeparators(String...folders){
// 		StringBuilder builder = new StringBuilder();
// 		for(String folder : folders){
// 			if(FILESYSTEM_SEPARATOR.equals(folder)){
// 				continue;
// 			}
// 			builder.append(FILESYSTEM_SEPARATOR);
// 			while(folder.startsWith(FILESYSTEM_SEPARATOR)){
// 				folder = folder.substring(1);
// 			}
// 			while(folder.endsWith(FILESYSTEM_SEPARATOR)){
// 				folder = folder.substring(0, folder.lastIndexOf(FILESYSTEM_SEPARATOR));
// 			}
// 			builder.append(folder);
// 		}
// 		String constructedFolder = builder.toString();
// 		if(ApplicationUtils.isWindows()){
// 			if(constructedFolder.startsWith(FILESYSTEM_SEPARATOR)){
// 				constructedFolder = constructedFolder.substring(1);
// 			}
// 			constructedFolder = constructedFolder.replace("%20", " ");
// 		}
// 		return constructedFolder;
// 	}
// 	
// }


// Path: lib/src/main/java/com/sandwich/util/Strings.java
import static com.sandwich.koan.constant.KoanConstants.PERIOD;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.sandwich.util.io.directories.DirectoryManager;

			trimmed[i] = tmp[i].trim();
		}
		return trimmed;
	}
	 
	private static ResourceBundle getMessagesBundle(){
		if(MESSAGES_BUNDLE == null){
			return createResourceBundle();
		}
		return MESSAGES_BUNDLE;
	}

	/**
	 * conditionally create messages bundle for proper locale, not on classpath so need to handle manually
	 * @return a resource bundle for default locale, or USA if default locale's language has no translated messages
	 */
	static ResourceBundle createResourceBundle() {
		ResourceBundle temp = null;
		try {
			temp = new PropertyResourceBundle(new FileInputStream(
				DirectoryManager.injectFileSystemSeparators(
					DirectoryManager.getProjectI18nDir(), 
							new StringBuilder("messages_").append(
									Locale.getDefault().getLanguage()).append(
									".properties").toString())));
		} catch(FileNotFoundException x) {
			try {
				Logger.getLogger(Strings.class.getName()).log(Level.INFO, "Your default language is not supported yet. "+x.getLocalizedMessage());
				temp = new PropertyResourceBundle(new FileInputStream(
						DirectoryManager.injectFileSystemSeparators(
							DirectoryManager.getProjectI18nDir(), "messages_en.properties")));