dpfmanager.shell.core.DPFManagerProperties Maven / Gradle / Ivy
/**
* DPFManagerProperties.java
This program is free software: you can redistribute it
* and/or modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later version; or,
* at your choice, under the terms of the Mozilla Public License, v. 2.0. SPDX GPL-3.0+ or MPL-2.0+.
*
This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License and the Mozilla Public License for more details.
* You should have received a copy of the GNU General Public License and the Mozilla Public
* License along with this program. If not, see http://www.gnu.org/licenses/
* and at http://mozilla.org/MPL/2.0 .
NB: for the
* © statement, include Easy Innova SL or other company/Person contributing the code.
©
* 2015 Easy Innova, SL
*
* @author Adrià Llorens
* @version 1.0
* @since 23/7/2015
*/
package dpfmanager.shell.core;
import dpfmanager.shell.core.app.MainGuiApp;
import edu.emory.mathcs.backport.java.util.Arrays;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
/**
* Created by Adrià Llorens on 15/02/2016.
*/
public class DPFManagerProperties {
private static boolean finished = false;
public static String getVersion(){
String filename = "version.properties";
InputStream input = MainGuiApp.class.getClassLoader().getResourceAsStream(filename);
try {
// load a properties file
Properties prop = new Properties();
prop.load(input);
return prop.getProperty("version");
}
catch (Exception e){
return "";
}
}
public static boolean getFeedback() {
String strVal = getPropertiesValue("feedback", "0");
return Boolean.valueOf(strVal);
}
public static void setFeedback(boolean value) {
String strVal = String.valueOf(value);
setPropertiesValue("feedback", strVal);
}
public static int getDatabaseVersion() {
String strVal = getPropertiesValue("database", "0");
return Integer.parseInt(strVal);
}
public static void setDatabaseVersion(int value) {
String strVal = String.valueOf(value);
setPropertiesValue("database", strVal);
}
public static boolean getFirstTime() {
String strVal = getPropertiesValue("firstTime", "true");
return Boolean.valueOf(strVal);
}
public static void setFirstTime(boolean value) {
String strVal = String.valueOf(value);
setPropertiesValue("firstTime", strVal);
}
public static String getDefaultDirFile() {
String dir = getPropertiesValue("browse_dir_file", getConfigDir());
if (!new File(dir).exists()) {
return getConfigDir();
}
return dir;
}
public static void setDefaultDirFile(String path) {
setPropertiesValue("browse_dir_file", path);
}
public static String getDefaultDirConfig() {
String dir = getPropertiesValue("browse_dir_config", getConfigDir());
if (!new File(dir).exists()) {
return getConfigDir();
}
return dir;
}
public static void setDefaultDirConfig(String path) {
setPropertiesValue("browse_dir_config", path);
}
public static String getPropertiesValue(String key, String def) {
Properties properties = getPropertiesConfig();
String value = (String) properties.get(key);
if (value == null) {
value = def;
}
return value;
}
public static void setPropertiesValue(String key, String value) {
Properties properties = getPropertiesConfig();
properties.setProperty(key, value);
setPropertiesConfig(properties);
}
public static Properties getPropertiesConfig() {
Properties properties = null;
try {
File configFile = new File(getConfigDir()+"/dpfmanager.properties");
File configFileNew = new File(getDataDir()+"/dpfmanager.properties");
// Config file
if (!configFileNew.exists()){
// No new file
if (!configFile.exists()) {
// No old file, create it
configFileNew.createNewFile();
} else {
// Move old to new
FileUtils.moveFile(configFile, configFileNew);
}
}
InputStream is = new FileInputStream(configFileNew);
properties = new Properties();
properties.load(is);
is.close();
}
catch(IOException ex){
ex.printStackTrace();
}
return properties;
}
public static void setPropertiesConfig(Properties properties){
try {
File configFile = new File(getDataDir()+"/dpfmanager.properties");
if (configFile.exists()) {
OutputStream os = new FileOutputStream(configFile);
properties.store(os, null);
os.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static String getConfigDir() {
if (!new File(System.getProperty("user.home") + "/DPF Manager").exists()) {
new File(System.getProperty("user.home") + "/DPF Manager").mkdir();
}
if (!new File(System.getProperty("user.home") + "/DPF Manager").exists()) {
// System.out.println("Could not create user dir. Switching to app dir"); TODO
return ".";
}
return System.getProperty("user.home") + "/DPF Manager";
}
public static String getReportsDir() {
String dir = getConfigDir() + "/reports";
File file = new File(dir);
if (!file.exists()){
file.mkdirs();
}
return dir;
}
public static String getIsosDir() {
String dir = getConfigDir() + "/isos";
File file = new File(dir);
if (!file.exists()){
file.mkdirs();
}
return dir;
}
public static String getDataDir() {
String dataDir = getConfigDir() + "/data";
File dataFile = new File(dataDir);
if (!dataFile.exists()){
dataFile.mkdirs();
}
return dataDir;
}
public static String getServerDir() {
String dataDir = getConfigDir() + "/server";
File dataFile = new File(dataDir);
if (!dataFile.exists()){
dataFile.mkdirs();
}
return dataDir;
}
public static String getConformancesConfig() {
return getDataDir() + "/conformance.xml";
}
public static String getLanguage() {
return getPropertiesValue("language", Locale.ENGLISH.toString());
}
public static void setLanguage(String lang) {
setPropertiesValue("language", lang);
}
public static ResourceBundle getBundle(){
return ResourceBundle.getBundle("bundles.language");
}
public static String getBuiltInDefinition(){
try {
return IOUtils.toString(DPFManagerProperties.class.getResourceAsStream("/builtin/Definition.xml"));
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
public static InputStream getDefaultBuiltInConfig(){
return DPFManagerProperties.class.getResourceAsStream("/builtin/Configuration.xml");
}
/**
* Returns the common accepted extensions
*/
public static List getCommonExtensions(){
List extensions = new ArrayList<>();
extensions.add("zip");
extensions.add("rar");
return extensions;
}
/**
* Finish control for test
*/
public static boolean isFinished() {
return finished;
}
public static void setFinished(boolean f) {
finished = f;
}
}