/**************************************************************************
OmegaT - Computer Assisted Translation (CAT) tool
with fuzzy matching, translation memory, keyword search,
glossaries, and translation leveraging into updated projects.
Copyright (C) 2009 Alex Buloichik
Home page: http://www.omegat.org/
Support center: http://groups.yahoo.com/group/OmegaT/
This file is part of OmegaT.
OmegaT 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.
OmegaT 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 for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
**************************************************************************/
package org.omegat.filters2;
import java.util.Map;
/**
* Class for wrap text options for read default values, parse int, boolean, enum
* values, etc.
*
* @author Alex Buloichik (alex73mail@gmail.com)
*/
public abstract class AbstractOptions {
private final Map<String, String> options;
public AbstractOptions(Map<String, String> options) {
this.options = options;
}
public Map<String, String> getOptionsMap() {
return options;
}
/**
* Parse boolean value from string option.
*
* @param key
* value key
* @param defaultValue
* default value, if value will not be "true" or "false"
* @return parsed value
*/
protected boolean getBoolean(String key, boolean defaultValue) {
String value = options.get(key);
if ("true".equalsIgnoreCase(value)) {
return true;
} else if ("false".equalsIgnoreCase(value)) {
return false;
} else {
return defaultValue;
}
}
/**
* Save boolean value to string option.
*
* @param key
* @param value
*/
protected void setBoolean(String key, boolean value) {
options.put(key, Boolean.toString(value));
}
/**
* Get string from string option.
*
* @param key
* value key
* @param defaultValue
* default value, if value will be null
* @return parsed value
*/
protected String getString(String key, String defaultValue) {
String value = options.get(key);
return value != null ? value : defaultValue;
}
/**
* Save string value to string option.
*
* @param key
* @param value
*/
protected void setString(String key, String value) {
options.put(key, value);
}
/**
* Get string from string option.
*
* @param key
* value key
* @param defaultValue
* default value, if value will be null
* @return parsed value
*/
protected <T extends Enum<T>> T getEnum(Class<T> enumType, String key, T defaultValue) {
String value = options.get(key);
try {
return Enum.valueOf(enumType, value);
} catch (Exception ex) {
return defaultValue;
}
}
/**
* Save string value to string option.
*
* @param key
* @param value
*/
protected <T extends Enum<T>> void setEnum(String key, T value) {
options.put(key, value.name());
}
}