1 package eu.mihosoft.vrl.v3d.parametrics;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.io.OutputStream;
7 import java.lang.reflect.Type;
8 import java.util.ArrayList;
9 import java.util.HashMap;
11 import org.apache.commons.io.FileUtils;
12 import org.apache.commons.io.IOUtils;
13 import com.google.gson.Gson;
14 import com.google.gson.GsonBuilder;
15 import com.google.gson.reflect.TypeToken;
19 private static HashMap<String,Parameter>
database=
null;
20 private static File
dbFile=
new File(
"CSGdatabase.json");
21 private static final Type
TT_mapStringString =
new TypeToken<HashMap<String,Parameter>>(){}.getType();
22 private static final Gson
gson =
new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create();
23 private static final HashMap<String,ArrayList<IParameterChanged>>
parameterListeners=
new HashMap<>();
24 public static void set(String key,
Parameter value){
50 if(!list.contains(l)){
72 public static void delete(String key){
88 InputStream in =
null;
90 in = FileUtils.openInputStream(
getDbFile());
91 jsonString= IOUtils.toString(in);
93 IOUtils.closeQuietly(in);
106 }
catch (Exception e) {
108 System.err.println(
dbFile.getAbsolutePath());
111 Runtime.getRuntime().addShutdownHook(
new Thread() {
119 long start = System.currentTimeMillis();
123 }
catch (InterruptedException e) {
127 if((System.currentTimeMillis()-start)>500){
136 InputStream in =
null;
140 in = FileUtils.openInputStream(f);
141 jsonString= IOUtils.toString(in);
144 for(String k:tm.keySet()){
148 }
catch (Exception e) {
149 System.err.println(f.getAbsolutePath());
154 IOUtils.closeQuietly(in);
159 String writeOut=
null;
173 OutputStream out =
null;
175 out = FileUtils.openOutputStream(
getDbFile(),
false);
176 IOUtils.write(writeOut, out);
180 IOUtils.closeQuietly(out);
182 }
catch (IOException e) {
200 }
catch (IOException e) {
static void setDatabase(HashMap< String, Parameter > database)
static void loadDatabaseFromFile(File f)
static final HashMap< String, ArrayList< IParameterChanged > > parameterListeners
static final Type TT_mapStringString
static HashMap< String, Parameter > getDatabase()
static ArrayList< IParameterChanged > getParamListeners(String key)
static void setDbFile(File dbFile)
static void saveDatabase()
static void addParameterListener(String key, IParameterChanged l)
static String getDataBaseString()
static void removeParameterListener(String key, IParameterChanged l)
static HashMap< String, Parameter > database