blob: 48b5b22f87254cf3b4be644d480a3630e19ac0a3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 The University of York.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Dimitrios Kolovos - initial API and implementation
******************************************************************************/
package org.eclipse.epsilon.common.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Properties;
@SuppressWarnings("serial")
public class StringProperties extends Properties{
public StringProperties() {
}
public StringProperties(String properties) {
load(properties);
}
public void load(String properties){
try {
super.load(new ByteArrayInputStream(properties.getBytes()));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public String toString(){
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
super.store(os,"");
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
// Get rid of the first two lines (comment + date)
String str = os.toString();
try {
return str.replaceAll("^#.*(\n|\r)", "").replaceAll("^#.*(\n|\r)", "").trim();
}
catch (Exception ex) {
return str;
}
}
public boolean hasProperty(String key) {
return containsKey(key) && !getProperty(key).isEmpty();
}
@Override
public String getProperty(String key) {
String zuper = super.getProperty(key);
if (zuper == null) return "";
else return zuper;
}
public int getIntegerProperty(String key, int default_) {
if (containsKey(key)) {
return Integer.parseInt(getProperty(key));
}
else {
return default_;
}
}
@Override
public synchronized Object put(Object key, Object value) {
return super.put(key, StringUtil.toString(value));
}
public static void main(String[] args){
StringProperties sp = new StringProperties();
sp.put("Hello2", "World");
sp.put("Name", "World");
sp.put("Mitsos", "World");
System.out.println(sp.toString());
//StringProperties sp2 = new StringProperties();
//sp2.load(sp.toString());
//System.out.println(sp2.get("Name"));
}
public boolean getBooleanProperty(String key, boolean def) {
String property = getProperty(key);
if (property.equalsIgnoreCase("true")) return true;
else if (property.equalsIgnoreCase("false")) return false;
else return def;
}
public StringProperties clone() {
StringProperties clone = new StringProperties();
clone.load(this.toString());
return clone;
}
}