// Path: DBMetadata-swing/src/main/java/com/github/abel533/utils/I18n.java
// public class I18n {
//     private static final String SUFFIX = ".properties";
//     private static ResourceBundle[] resourceBundles;
//     private static Set<String> baseNameList;
// 
//     static {
//         init(null);
//     }
// 
//     private static void initBaseNameList() {
//         File[] files = new File(Path.LANGUAGE).listFiles(new FilenameFilter() {
//             @Override
//             public boolean accept(File dir, String name) {
//                 if (name.endsWith(SUFFIX)) {
//                     return true;
//                 }
//                 return false;
//             }
//         });
//         baseNameList = new HashSet<String>();
//         for (int i = 0; i < files.length; i++) {
//             String fileName = files[i].getName();
//             int index = fileName.indexOf('_');
//             if (index == -1) {
//                 baseNameList.add("language/" + fileName.substring(0, fileName.lastIndexOf('.')));
//             } else {
//                 baseNameList.add("language/" + fileName.substring(0, index));
//             }
//         }
//     }
// 
//     /**
//      * 初始化 - 可以设置语言
//      *
//      * @param locale
//      */
//     public static void init(Locale locale) {
//         if (locale != null) {
//             Locale.setDefault(locale);
//         }
//         if (baseNameList == null || baseNameList.size() == 0) {
//             initBaseNameList();
//         }
//         resourceBundles = new ResourceBundle[baseNameList.size()];
//         int i = 0;
//         for (String baseName : baseNameList) {
//             resourceBundles[i] = ResourceBundle.getBundle(baseName);
//             i++;
//         }
//     }
// 
//     public static String key(String key) {
//         for (int i = 0; i < resourceBundles.length; i++) {
//             if (resourceBundles[i].containsKey(key)) {
//                 return resourceBundles[i].getString(key);
//             }
//         }
//         throw new RuntimeException("key:" + key + " not exists!");
//     }
// 
//     /**
//      * 可配参数，如：查找{0}字段
//      *
//      * @param key
//      * @param args
//      * @return
//      */
//     public static String key(String key, Object... args) {
//         return MessageFormat.format(key(key), args);
//     }
// }
// 
// Path: DBMetadata-swing/src/main/java/com/github/abel533/utils/Path.java
// public abstract class Path {
// 
//     public static final String ROOT;
//     public static final String LANGUAGE;
//     public static final String db_json;
// 
//     static {
//         String root = null;
//         try {
//             root = getRealPath();
//         } catch (Exception e) {
//             e.printStackTrace();
//             root = getProjectPath();
//         }
//         if (root != null) {
//             root = root.replaceAll("\\\\", "/");
//         }
//         ROOT = root + "/";
//         LANGUAGE = ROOT + "language/";
//         db_json = ROOT + "/db.json";
//     }
// 
//     public static String getProjectPath() {
//         java.net.URL url = Path.class.getProtectionDomain().getCodeSource()
//                 .getLocation();
//         String filePath = null;
//         try {
//             filePath = java.net.URLDecoder.decode(url.getPath(), "utf-8");
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
//         if (filePath.endsWith(".jar"))
//             filePath = filePath.substring(0, filePath.lastIndexOf("/") + 1);
//         java.io.File file = new java.io.File(filePath);
//         filePath = file.getAbsolutePath();
//         return filePath;
//     }
// 
//     public static String getRealPath() throws Exception {
//         String realPath = Path.class.getClassLoader().getResource("").getFile();
//         java.io.File file = new java.io.File(realPath);
//         realPath = file.getAbsolutePath();
//         realPath = java.net.URLDecoder.decode(realPath, "utf-8");
//         return realPath;
//     }
// }


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.abel533.utils.I18n;
import com.github.abel533.utils.Path;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
package com.github.abel533.component;



public class DBServerList {
    private Set<DBServer> servers;
    private String selected;

    public DBServerList() {
        this.servers = new HashSet<DBServer>();
    }

    public Set<DBServer> getServers() {
        return servers;
    }

    public void setServers(Set<DBServer> servers) {
        this.servers = servers;
    }

    public String getSelected() {
        return selected;
    }

    public void setSelected(String selected) {
        this.selected = selected;
    }

    public void toDBJson() {
        FileWriter writer = null;
        try {
            writer = new FileWriter(Path.db_json);
            JSON.writeJSONStringTo(this, writer, SerializerFeature.PrettyFormat);
        } catch (IOException e) {
// Path: DBMetadata-swing/src/main/java/com/github/abel533/utils/I18n.java
// public class I18n {
//     private static final String SUFFIX = ".properties";
//     private static ResourceBundle[] resourceBundles;
//     private static Set<String> baseNameList;
// 
//     static {
//         init(null);
//     }
// 
//     private static void initBaseNameList() {
//         File[] files = new File(Path.LANGUAGE).listFiles(new FilenameFilter() {
//             @Override
//             public boolean accept(File dir, String name) {
//                 if (name.endsWith(SUFFIX)) {
//                     return true;
//                 }
//                 return false;
//             }
//         });
//         baseNameList = new HashSet<String>();
//         for (int i = 0; i < files.length; i++) {
//             String fileName = files[i].getName();
//             int index = fileName.indexOf('_');
//             if (index == -1) {
//                 baseNameList.add("language/" + fileName.substring(0, fileName.lastIndexOf('.')));
//             } else {
//                 baseNameList.add("language/" + fileName.substring(0, index));
//             }
//         }
//     }
// 
//     /**
//      * 初始化 - 可以设置语言
//      *
//      * @param locale
//      */
//     public static void init(Locale locale) {
//         if (locale != null) {
//             Locale.setDefault(locale);
//         }
//         if (baseNameList == null || baseNameList.size() == 0) {
//             initBaseNameList();
//         }
//         resourceBundles = new ResourceBundle[baseNameList.size()];
//         int i = 0;
//         for (String baseName : baseNameList) {
//             resourceBundles[i] = ResourceBundle.getBundle(baseName);
//             i++;
//         }
//     }
// 
//     public static String key(String key) {
//         for (int i = 0; i < resourceBundles.length; i++) {
//             if (resourceBundles[i].containsKey(key)) {
//                 return resourceBundles[i].getString(key);
//             }
//         }
//         throw new RuntimeException("key:" + key + " not exists!");
//     }
// 
//     /**
//      * 可配参数，如：查找{0}字段
//      *
//      * @param key
//      * @param args
//      * @return
//      */
//     public static String key(String key, Object... args) {
//         return MessageFormat.format(key(key), args);
//     }
// }
// 
// Path: DBMetadata-swing/src/main/java/com/github/abel533/utils/Path.java
// public abstract class Path {
// 
//     public static final String ROOT;
//     public static final String LANGUAGE;
//     public static final String db_json;
// 
//     static {
//         String root = null;
//         try {
//             root = getRealPath();
//         } catch (Exception e) {
//             e.printStackTrace();
//             root = getProjectPath();
//         }
//         if (root != null) {
//             root = root.replaceAll("\\\\", "/");
//         }
//         ROOT = root + "/";
//         LANGUAGE = ROOT + "language/";
//         db_json = ROOT + "/db.json";
//     }
// 
//     public static String getProjectPath() {
//         java.net.URL url = Path.class.getProtectionDomain().getCodeSource()
//                 .getLocation();
//         String filePath = null;
//         try {
//             filePath = java.net.URLDecoder.decode(url.getPath(), "utf-8");
//         } catch (Exception e) {
//             e.printStackTrace();
//         }
//         if (filePath.endsWith(".jar"))
//             filePath = filePath.substring(0, filePath.lastIndexOf("/") + 1);
//         java.io.File file = new java.io.File(filePath);
//         filePath = file.getAbsolutePath();
//         return filePath;
//     }
// 
//     public static String getRealPath() throws Exception {
//         String realPath = Path.class.getClassLoader().getResource("").getFile();
//         java.io.File file = new java.io.File(realPath);
//         realPath = file.getAbsolutePath();
//         realPath = java.net.URLDecoder.decode(realPath, "utf-8");
//         return realPath;
//     }
// }


// Path: DBMetadata-swing/src/main/java/com/github/abel533/component/DBServerList.java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.abel533.utils.I18n;
import com.github.abel533.utils.Path;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

package com.github.abel533.component;



public class DBServerList {
    private Set<DBServer> servers;
    private String selected;

    public DBServerList() {
        this.servers = new HashSet<DBServer>();
    }

    public Set<DBServer> getServers() {
        return servers;
    }

    public void setServers(Set<DBServer> servers) {
        this.servers = servers;
    }

    public String getSelected() {
        return selected;
    }

    public void setSelected(String selected) {
        this.selected = selected;
    }

    public void toDBJson() {
        FileWriter writer = null;
        try {
            writer = new FileWriter(Path.db_json);
            JSON.writeJSONStringTo(this, writer, SerializerFeature.PrettyFormat);
        } catch (IOException e) {
            throw new RuntimeException(I18n.key("tools.login.save.failure"));