/* * Copyright (C) 2010-2012 JPEXS * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package com.jpexs.asdec; import com.jpexs.proxy.Replacement; import java.io.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class Configuration { private static final String CONFIG_NAME = "asdec.cfg"; private static final String REPLACEMENTS_NAME = "replacements.ini"; private static HashMap config = new HashMap(); public static String getASDecHome() { String dir = ".";//System.getProperty("user.home"); if (!dir.endsWith(File.separator)) { dir += File.separator; } dir += "config" + File.separator; return dir; } private static String getReplacementsFile() { return getASDecHome() + REPLACEMENTS_NAME; } private static String getConfigFile() { return getASDecHome() + CONFIG_NAME; } /** * List of replacements */ public static java.util.List replacements = new ArrayList(); /** * Saves replacements to file for future use */ private static void saveReplacements() { try { if (replacements.isEmpty()) { File rf = new File(getReplacementsFile()); if (rf.exists()) { rf.delete(); } } else { File f = new File(getASDecHome()); if (!f.exists()) { f.mkdir(); } PrintWriter pw = new PrintWriter(new FileWriter(getReplacementsFile())); for (Replacement r : replacements) { pw.println(r.urlPattern); pw.println(r.targetFile); } pw.close(); } } catch (IOException e) { } } /** * Load replacements from file */ private static void loadReplacements() { replacements = new ArrayList(); try { BufferedReader br = new BufferedReader(new FileReader(getReplacementsFile())); String s = ""; while ((s = br.readLine()) != null) { Replacement r = new Replacement(s, br.readLine()); replacements.add(r); } br.close(); } catch (IOException e) { } } public static Object getConfig(String cfg) { return getConfig(cfg, null); } public static Object getConfig(String cfg, Object defaultValue) { if (!config.containsKey(cfg)) { return defaultValue; } return config.get(cfg); } public static Object setConfig(String cfg, Object value) { return config.put(cfg, value); } public static void load() { ObjectInputStream ois = null; try { ois = new ObjectInputStream(new FileInputStream(getConfigFile())); config = (HashMap) ois.readObject(); } catch (FileNotFoundException ex) { } catch (ClassNotFoundException cnf) { } catch (IOException ex) { } finally { if (ois != null) { try { ois.close(); } catch (IOException ex1) { //ignore } } } loadReplacements(); } public static void save() { ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(new FileOutputStream(getConfigFile())); oos.writeObject(config); } catch (FileNotFoundException ex) { } catch (IOException ex) { } finally { if (oos != null) { try { oos.close(); } catch (IOException ex1) { //ignore } } } saveReplacements(); } public static List getReplacements() { return replacements; } }