OSDN Git Service

refactoring: functions related to system directory
authorargius <argius.net@gmail.com>
Sat, 11 May 2013 01:24:08 +0000 (10:24 +0900)
committerargius <argius.net@gmail.com>
Sat, 11 May 2013 01:24:08 +0000 (10:24 +0900)
src/net/argius/stew/Bootstrap.java
src/net/argius/stew/CommandProcessor.java
src/net/argius/stew/ConnectorConfiguration.java
src/net/argius/stew/Environment.java
src/net/argius/stew/ui/window/DatabaseInfoTree.java
src/net/argius/stew/ui/window/Menu.java
src/net/argius/stew/ui/window/WindowLauncher.java

index 7fb7512..73886ca 100644 (file)
@@ -128,10 +128,14 @@ public final class Bootstrap {
      * Returns system directory.
      * @return
      */
-    public static File getDirectory() {
+    public static File getSystemDirectory() {
         return dir;
     }
 
+    public static File getSystemFile(String name) {
+        return new File(dir, name);
+    }
+
     /**
      * Returns this app's system property.
      * @param key
index f359814..9547df1 100644 (file)
@@ -218,8 +218,10 @@ final class CommandProcessor {
         }
         // at
         if (commandName.equals("@")) {
-            op.output(String.format("current dir : %s", env.getCurrentDirectory().getAbsolutePath()));
-            op.output(String.format("system  dir : %s", env.getSystemDirectory().getAbsolutePath()));
+            final String currentDirectory = env.getCurrentDirectory().getAbsolutePath();
+            final String systemDirectory = Bootstrap.getSystemDirectory().getAbsolutePath();
+            op.output(String.format("current dir : %s", currentDirectory));
+            op.output(String.format("system  dir : %s", systemDirectory));
             return true;
         }
         // report -
index 58e2d8b..8d04c5a 100644 (file)
@@ -10,6 +10,8 @@ import java.util.regex.*;
  */
 public final class ConnectorConfiguration {
 
+    static final String CONNECTOR_PROPERTIES_NAME = "connector.properties";
+
     private static final Pattern idPattern = Pattern.compile("^([^\\.]+)\\.name *=");
 
     /**
@@ -119,8 +121,12 @@ public final class ConnectorConfiguration {
         }
     }
 
+    public static long lastModified() {
+        return getPath().lastModified();
+    }
+
     private static File getPath() {
-        return new File(Bootstrap.getDirectory(), Environment.CONNECTOR_PROPERTIES_NAME);
+        return Bootstrap.getSystemFile(CONNECTOR_PROPERTIES_NAME);
     }
 
     private static final class ConnectorPropertyComparator implements
index cce10ac..8f2836a 100644 (file)
@@ -1,6 +1,6 @@
 package net.argius.stew;
 
-import static net.argius.stew.Bootstrap.getDirectory;
+import static net.argius.stew.Bootstrap.getSystemFile;
 
 import java.io.*;
 import java.sql.*;
@@ -12,7 +12,6 @@ import net.argius.stew.ui.*;
  */
 public final class Environment {
 
-    static final String CONNECTOR_PROPERTIES_NAME = "connector.properties";
     static final String ALIAS_PROPERTIES_NAME = "alias.properties";
 
     private static final Logger log = Logger.getLogger(Environment.class);
@@ -24,7 +23,6 @@ public final class Environment {
     private Connection conn;
 
     private int timeoutSeconds;
-    private File systemDirectory;
     private File currentDirectory;
     private long connectorTimestamp;
     private AliasMap aliasMap;
@@ -38,10 +36,9 @@ public final class Environment {
         this.connectorMap = new ConnectorMap();
         loadConnectorMap();
         // init directories
-        this.systemDirectory = getDirectory();
         this.currentDirectory = getInitialCurrentDirectory();
         // init alias
-        final File aliasPropFile = new File(this.systemDirectory, ALIAS_PROPERTIES_NAME);
+        final File aliasPropFile = getSystemFile(ALIAS_PROPERTIES_NAME);
         this.aliasMap = new AliasMap(aliasPropFile);
         if (aliasPropFile.exists()) {
             try {
@@ -60,7 +57,6 @@ public final class Environment {
         // never copy coconnector,conn,op into this
         this.connectorMap = new ConnectorMap(src.connectorMap);
         this.timeoutSeconds = src.timeoutSeconds;
-        this.systemDirectory = src.systemDirectory;
         this.currentDirectory = src.currentDirectory;
     }
 
@@ -78,7 +74,6 @@ public final class Environment {
             connectorMap = null;
             connector = null;
             conn = null;
-            systemDirectory = null;
             currentDirectory = null;
         }
         log.debug("released internal state of Environment");
@@ -186,15 +181,9 @@ public final class Environment {
      * Loads and refreshes connector map.
      */
     public void loadConnectorMap() {
-        File connectorFile = new File(getDirectory(), CONNECTOR_PROPERTIES_NAME);
         ConnectorMap m;
         try {
-            InputStream is = new FileInputStream(connectorFile);
-            try {
-                m = ConnectorConfiguration.load(is);
-            } finally {
-                is.close();
-            }
+            m = ConnectorConfiguration.load();
         } catch (IOException ex) {
             m = new ConnectorMap();
         }
@@ -203,7 +192,7 @@ public final class Environment {
                 connectorMap.clear();
             }
             connectorMap.putAll(m);
-            connectorTimestamp = connectorFile.lastModified();
+            connectorTimestamp = ConnectorConfiguration.lastModified();
         }
     }
 
@@ -213,8 +202,7 @@ public final class Environment {
      * @return whether updated or not
      */
     public boolean updateConnectorMap() {
-        File connectorFile = new File(getDirectory(), CONNECTOR_PROPERTIES_NAME);
-        if (connectorFile.lastModified() > connectorTimestamp) {
+        if (ConnectorConfiguration.lastModified() > connectorTimestamp) {
             loadConnectorMap();
             return true;
         }
@@ -261,8 +249,13 @@ public final class Environment {
         this.currentDirectory = currentDirectory;
     }
 
+    /**
+     * @return system directory
+     * @deprecated use Bootstrap.getSystemDirectory() instead
+     */
+    @Deprecated
     public File getSystemDirectory() {
-        return systemDirectory;
+        return Bootstrap.getSystemDirectory();
     }
 
     public AliasMap getAliasMap() {
index ab78842..483bf33 100644 (file)
@@ -463,7 +463,7 @@ final class DatabaseInfoTree extends JTree implements AnyActionListener, TextSea
         this.currentConnector = c;
         // auto-expansion
         try {
-            File confFile = new File(Bootstrap.getDirectory(), "autoexpansion.tsv");
+            File confFile = Bootstrap.getSystemFile("autoexpansion.tsv");
             if (confFile.exists() && confFile.length() > 0) {
                 AnyAction aa = new AnyAction(this);
                 Scanner r = new Scanner(confFile);
index e0b96c2..e97e3f6 100644 (file)
@@ -199,7 +199,7 @@ final class Menu extends JMenuBar implements PropertyChangeListener {
 
     private static void refreshAllAccelerators(Map<String, JMenuItem> itemMap) {
         // This method is called everytime menu and popup-menu is created.
-        File keyBindConf = new File(Bootstrap.getDirectory(), "keybind.conf");
+        File keyBindConf = Bootstrap.getSystemFile("keybind.conf");
         if (!keyBindConf.exists()) {
             return;
         }
index 3c69638..46a8eb2 100644 (file)
@@ -396,7 +396,7 @@ public final class WindowLauncher implements
     }
 
     private void loadConfiguration() {
-        Configuration cnf = Configuration.load(Bootstrap.getDirectory());
+        Configuration cnf = Configuration.load();
         op.setSize(cnf.getSize());
         op.setLocation(cnf.getLocation());
         split2.setDividerLocation(cnf.getDividerLocation());
@@ -411,7 +411,7 @@ public final class WindowLauncher implements
     }
 
     private void saveConfiguration() {
-        Configuration cnf = Configuration.load(Bootstrap.getDirectory());
+        Configuration cnf = Configuration.load();
         if ((op.getExtendedState() & Frame.MAXIMIZED_BOTH) == 0) {
             // only not maximized
             cnf.setSize(op.getSize());
@@ -436,8 +436,6 @@ public final class WindowLauncher implements
 
         private static final Logger log = Logger.getLogger(Configuration.class);
 
-        private transient File directory;
-
         private Dimension size;
         private Point location;
         private int dividerLocation;
@@ -462,13 +460,9 @@ public final class WindowLauncher implements
             this.postProcessMode = AnyActionKey.postProcessMode.toString();
         }
 
-        void setDirectory(File directory) {
-            this.directory = directory;
-        }
-
         void save() {
-            final File file = getFile(directory);
-            log.debug("save Configuration to: [%s]", file);
+            final File file = getFile();
+            log.debug("save Configuration to: [%s]", file.getAbsolutePath());
             try {
                 XMLEncoder encoder = new XMLEncoder(new FileOutputStream(file));
                 try {
@@ -481,16 +475,14 @@ public final class WindowLauncher implements
             }
         }
 
-        static Configuration load(File directory) {
-            final File file = getFile(directory);
-            log.debug("load Configuration from: [%s]", file);
+        static Configuration load() {
+            final File file = getFile();
+            log.debug("load Configuration from: [%s]", file.getAbsolutePath());
             if (file.exists()) {
                 try {
                     XMLDecoder decoder = new XMLDecoder(new FileInputStream(file));
                     try {
-                        final Configuration instance = (Configuration)decoder.readObject();
-                        instance.setDirectory(directory);
-                        return instance;
+                        return (Configuration)decoder.readObject();
                     } finally {
                         decoder.close();
                     }
@@ -498,14 +490,11 @@ public final class WindowLauncher implements
                     log.warn(ex);
                 }
             }
-            final Configuration instance = new Configuration();
-            instance.setDirectory(directory);
-            return instance;
+            return new Configuration();
         }
 
-        private static File getFile(File systemDirectory) {
-            final File file = new File(systemDirectory, Configuration.class.getName() + ".xml");
-            return file.getAbsoluteFile();
+        private static File getFile() {
+            return Bootstrap.getSystemFile(Configuration.class.getName() + ".xml");
         }
 
         public Dimension getSize() {