package com.vistatec.ocelot.config; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; public class DirectoryBasedConfigs implements Configs { public static final String RULES_CONFIG = "rules.properties"; private File dir; public DirectoryBasedConfigs(File dir) { this.dir = dir; } protected Reader getReader(String filename) throws IOException { File f = new File(dir, filename); if (!f.exists()) { return null; } return new InputStreamReader(new FileInputStream(f), "UTF-8"); } protected Writer getWriter(String filename) throws IOException { File f = new File(dir, filename); if (!f.exists()) { f.createNewFile(); } return new OutputStreamWriter(new FileOutputStream(f), "UTF-8"); } @Override public Reader getRulesReader() throws IOException { return getReader(RULES_CONFIG); } @Override public Writer getRulesWriter() throws IOException { return getWriter(RULES_CONFIG); } }