OSDN Git Service

move prepareConfigDir()
authorOlyutorskii <olyutorskii@users.osdn.me>
Tue, 2 Jun 2020 06:38:10 +0000 (15:38 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Tue, 2 Jun 2020 06:38:10 +0000 (15:38 +0900)
src/main/java/jp/sfjp/jindolf/JindolfMain.java
src/main/java/jp/sfjp/jindolf/config/ConfigDirUtils.java
src/main/java/jp/sfjp/jindolf/config/ConfigStore.java

index b801792..3bc7ee7 100644 (file)
@@ -247,7 +247,7 @@ public final class JindolfMain {
         dumpBootInfo(appSetting);
 
         ConfigStore configStore = appSetting.getConfigStore();
-        configStore.prepareConfigDir();
+        ConfigDirUtils.prepareConfigDir(configStore);
         ConfigDirUtils.tryLock(configStore);
         // ここから設定格納ディレクトリ解禁
 
index 8c100ef..49e4c02 100644 (file)
@@ -185,7 +185,7 @@ public final class ConfigDirUtils{
      * @param path ファイル
      * @return HTML表記
      */
-    public static String getCenteredFileName(Path path){
+    private static String getCenteredFileName(Path path){
         String form = "<center>[&nbsp;{0}&nbsp;]</center><br/>";
         String fileName = FileUtils.getHtmledFileName(path);
         String result = MessageFormat.format(form, fileName);
@@ -276,7 +276,7 @@ public final class ConfigDirUtils{
      *
      * @param confDir 設定ディレクトリ
      */
-    public static void checkDirPerm(Path confDir){
+    private static void checkDirPerm(Path confDir){
         if( ! FileUtils.isAccessibleDirectory(confDir) ){
             abortCantAccessDir(confDir);
         }
@@ -285,6 +285,33 @@ public final class ConfigDirUtils{
     }
 
     /**
+     * 設定ディレクトリの存在を確認し、なければ作る。
+     *
+     * <p>設定ディレクトリを使わない場合は何もしない。
+     *
+     * @param configStore 設定ディレクトリ情報
+     */
+    public static void prepareConfigDir(ConfigStore configStore){
+        if( ! configStore.useStoreFile() ) return;
+
+        Path conf = configStore.getConfigDir();
+        if(Files.exists(conf)){
+            checkDirPerm(conf);
+        }else{
+            buildConfDirPath(conf);
+        }
+
+        Path imgDir = configStore.getLocalImgDir();
+        if(Files.exists(imgDir)){
+            checkDirPerm(imgDir);
+        }else{
+            buildImageCacheDir(imgDir);
+        }
+
+        return;
+    }
+
+    /**
      * まだ存在しない設定格納ディレクトリを新規に作成する。
      *
      * <p>エラーがあればダイアログ提示とともにVM終了する。
@@ -294,11 +321,11 @@ public final class ConfigDirUtils{
      * @param confPath 設定格納ディレクトリ
      * @return 新規に作成した設定格納ディレクトリの絶対パス
      */
-    public static Path buildConfDirPath(Path confPath){
-        Path absPath = confPath.toAbsolutePath();
-        if(Files.exists(absPath)) return absPath;
+    private static Path buildConfDirPath(Path confPath){
+        assert confPath.isAbsolute();
+        if(Files.exists(confPath)) return confPath;
 
-        boolean confirmed = confirmBuildConfigDir(absPath);
+        boolean confirmed = confirmBuildConfigDir(confPath);
         if( ! confirmed ){
             JOptionPane pane = new JOptionPane(
                     MSG_ABORT, JOptionPane.WARNING_MESSAGE);
@@ -308,21 +335,21 @@ public final class ConfigDirUtils{
         }
 
         try{
-            Files.createDirectories(absPath);
+            Files.createDirectories(confPath);
         }catch(IOException | SecurityException e){
-            logMkdirErr(absPath, e);
-            abortCantBuildDir(absPath);
+            logMkdirErr(confPath, e);
+            abortCantBuildDir(confPath);
             assert false;
         }
 
         // FileUtils.setOwnerOnlyAccess(absPath);
 
-        checkDirPerm(absPath);
+        checkDirPerm(confPath);
 
-        Path readme = absPath.resolve(FILE_README);
+        Path readme = confPath.resolve(FILE_README);
         copyResource(RES_README, readme);
 
-        return absPath;
+        return confPath;
     }
 
     /**
@@ -357,19 +384,19 @@ public final class ConfigDirUtils{
      *
      * @param imgCacheDir ローカル画像キャッシュディレクトリ
      */
-    public static void buildImageCacheDir(Path imgCacheDir){
-        Path absPath = imgCacheDir.toAbsolutePath();
-        if(Files.exists(absPath)) return;
+    private static void buildImageCacheDir(Path imgCacheDir){
+        assert imgCacheDir.isAbsolute();
+        if(Files.exists(imgCacheDir)) return;
 
         try{
-            Files.createDirectories(absPath);
+            Files.createDirectories(imgCacheDir);
         }catch(IOException | SecurityException e){
-            logMkdirErr(absPath, e);
-            abortCantBuildDir(absPath);
+            logMkdirErr(imgCacheDir, e);
+            abortCantBuildDir(imgCacheDir);
             assert false;
         }
 
-        checkDirPerm(absPath);
+        checkDirPerm(imgCacheDir);
 
         Path jsonPath = imgCacheDir.resolve(FILE_AVATARJSON);
         copyResource(RES_AVATARJSON, jsonPath);
@@ -395,7 +422,7 @@ public final class ConfigDirUtils{
         lock.tryLock();
 
         if( ! lock.isFileOwner() ){
-            ConfigDirUtils.confirmLockError(lock);
+            confirmLockError(lock);
             if( ! lock.isFileOwner() ){
                 configStore.setNoConf();
             }
@@ -415,7 +442,7 @@ public final class ConfigDirUtils{
      *
      * @param lock エラーを起こしたロック
      */
-    public static void confirmLockError(InterVMLock lock){
+    private static void confirmLockError(InterVMLock lock){
         File lockFile = lock.getLockFile();
 
         LockErrorPane lockPane = new LockErrorPane(lockFile.toPath());
index 790eb56..108a178 100644 (file)
@@ -7,7 +7,6 @@
 
 package jp.sfjp.jindolf.config;
 
-import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
@@ -249,6 +248,7 @@ public class ConfigStore {
         if(this.configDir == null) return null;
 
         Path result = this.configDir.resolve(LOCALIMG_DIR);
+        assert result.isAbsolute();
 
         return result;
     }
@@ -268,28 +268,4 @@ public class ConfigStore {
         return lockFile;
     }
 
-    /**
-     * 設定ディレクトリの存在を確認し、なければ作る。
-     *
-     * <p>設定ディレクトリを使わない場合は何もしない。
-     */
-    public void prepareConfigDir(){
-        if( ! this.useStoreFile ) return;
-
-        if( ! Files.exists(this.configDir) ){
-            Path created =
-                ConfigDirUtils.buildConfDirPath(this.configDir);
-            ConfigDirUtils.checkDirPerm(created);
-        }else{
-            ConfigDirUtils.checkDirPerm(this.configDir);
-        }
-
-        Path imgDir = this.configDir.resolve("img");
-        if( ! Files.exists(imgDir) ){
-            ConfigDirUtils.buildImageCacheDir(imgDir);
-        }
-
-        return;
-    }
-
 }