00001
00025 package org.objectweb.cjdbc.console.gui.session;
00026
00027
import java.io.BufferedWriter;
00028
import java.io.File;
00029
import java.io.FileInputStream;
00030
import java.io.FileWriter;
00031
import java.io.IOException;
00032
import java.util.ArrayList;
00033
import java.util.Enumeration;
00034
import java.util.Hashtable;
00035
import java.util.Properties;
00036
00037
import org.objectweb.cjdbc.common.util.ReadWrite;
00038
00045 public class GuiSession
00046 {
00047 private final boolean saveDatabaseInfoToDisk =
true;
00048 ArrayList
controllerItems;
00049 ArrayList
configurationFiles;
00050 Hashtable
databaseItems;
00051
00055 public GuiSession()
00056 {
00057
controllerItems =
new ArrayList();
00058
configurationFiles =
new ArrayList();
00059
databaseItems =
new Hashtable();
00060 }
00061
00068 public void saveSessionToFile(File sessionFile)
throws IOException
00069 {
00070 BufferedWriter writer =
new BufferedWriter(
new FileWriter(sessionFile));
00071
if (
saveDatabaseInfoToDisk)
00072 {
00073 writer.write(
"### DATABASES ###"
00074 + System.getProperty(
"line.separator"));
00075 writer.write(
ReadWrite.write(
databaseItems,
false));
00076 }
00077 writer.write(
"### CONTROLLERS ###"
00078 + System.getProperty(
"line.separator"));
00079 writer.write(
ReadWrite.write(
controllerItems,
"controller",
false));
00080 writer.write(
"### CONFIGURATION FILES ###"
00081 + System.getProperty(
"line.separator"));
00082 writer.write(
ReadWrite.write(
configurationFiles,
"configuration",
false));
00083 writer.close();
00084 }
00085
00092 public void loadSessionFromFile(File sessionFile)
throws IOException
00093 {
00094
if (sessionFile.exists())
00095 {
00096 Properties session =
new Properties();
00097 session.load(
new FileInputStream(sessionFile));
00098 Enumeration enume = session.keys();
00099 String key;
00100 String value;
00101
while (enume.hasMoreElements())
00102 {
00103 key = (String) enume.nextElement();
00104 value = (String) session.get(key);
00105
if (key.startsWith(
"controller"))
00106
controllerItems.add(value);
00107
else if (key.startsWith(
"database"))
00108
databaseItems.put(key, value);
00109
else if (key.startsWith(
"configuration"))
00110
addFileToConfigurationFiles(
new File(value));
00111 }
00112 }
00113
else
00114 {
00115
controllerItems.add(
"0.0.0.0:1090");
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 }
00127 }
00128
00134 public ArrayList
getControllerItems()
00135 {
00136
return controllerItems;
00137 }
00138
00144 public void addControllerToList(String controller)
00145 {
00146
if (!
controllerItems.contains(controller))
00147
controllerItems.add(controller);
00148 }
00149
00156 public boolean checkControllerInSession(String controller)
00157 {
00158
return controllerItems.contains(controller);
00159 }
00160
00166 public ArrayList
getConfigurationFiles()
00167 {
00168
return configurationFiles;
00169 }
00170
00177 public void addFileToConfigurationFiles(File newFile)
00178 {
00179
if (!
configurationFiles.contains(newFile))
00180
configurationFiles.add(newFile);
00181 }
00182
00190 public void addDatabaseToSession(String databaseName, String login,
00191 String password)
00192 {
00193
databaseItems.put(
"database." + databaseName +
".login", login);
00194
databaseItems.put(
"database." + databaseName +
".password", password);
00195 }
00196
00204 public boolean isAuthenticatedDatabase(String databaseName)
00205 {
00206
return databaseItems.containsKey(
"database." + databaseName +
".login");
00207 }
00208
00215 public String
getAuthenticatedDatabaseLogin(String databaseName)
00216 {
00217
return (String)
databaseItems.get(
"database." + databaseName +
".login");
00218 }
00219
00226 public String
getAuthenticatedDatabasePassword(String databaseName)
00227 {
00228
return (String)
databaseItems.get(
"database." + databaseName +
".password");
00229 }
00230
00236 public Hashtable
getDatabaseItems()
00237 {
00238
return databaseItems;
00239 }
00240 }