![JAR search and dependency download from the Maven repository](/logo.png)
net.hasor.cobble.setting.Settings Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2008-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.hasor.cobble.setting;
import java.io.IOException;
import java.util.Date;
/**
* 配置文件设置
*
*
* 环境变量来源以及加载顺序,靠后顺位会覆盖前一顺位的重复配置。
* 1st,System.getProperties()
* 2st,System.getenv()
* 3st,配置文件"hasor.environmentVar"
* 4st,传入的配置
*
* @version : 2013-4-23
* @author 赵永春 ([email protected])
*/
public interface Settings {
String DefaultNameSpace = "https://www.hasor.net/sechma/main";
/** @return 已解析的命名空间列表 */
String[] getSettingArray();
/** 获取指在某个特定命名空间下的Settings接口对象 */
Settings getSettings(String namespace);
/** 如果配置的值采用了表达式,那么 refresh 会计算它们 */
default void refresh() throws IOException {
}
/**
* 设置参数,如果出现多个值,则会覆盖。(使用默认命名空间 : DefaultNameSpace)
* @see #DefaultNameSpace
*/
default void setSetting(String key, Object value) {
if (value instanceof SettingNode) {
this.setSetting(key, value, ((SettingNode) value).getSpace());
} else {
this.setSetting(key, value, DefaultNameSpace);
}
}
/** 设置参数,如果出现多个值,则会覆盖 */
void setSetting(String key, Object value, String namespace);
/** 将整个配置项的多个值全部删除(全部命名空间) */
void removeSetting(String s);
/** 将整个配置项的多个值全部删除 */
void removeSetting(String key, String namespace);
/** 添加参数,如果参数名称相同则追加一项 */
default void addSetting(String key, Object value) {
this.addSetting(key, value, DefaultNameSpace);
}
/** 添加参数,如果参数名称相同则追加一项 */
void addSetting(String key, Object var, String namespace);
/** 计算字符串,并替换环境变量等信息 */
String evalSetting(String evalString);
/** 解析全局配置参数,并且返回其{@link Character}形式对象 */
Character getChar(String name);
/** 解析全局配置参数,并且返回其{@link Character}形式对象。第二个参数为默认值 */
Character getChar(String name, Character defaultValue);
/** 解析全局配置参数,并且返回其{@link String}形式对象 */
String getString(String name);
/** 解析全局配置参数,并且返回其{@link String}形式对象。第二个参数为默认值 */
String getString(String name, String defaultValue);
/** 解析全局配置参数,并且返回其{@link Boolean}形式对象 */
Boolean getBoolean(String name);
/** 解析全局配置参数,并且返回其{@link Boolean}形式对象。第二个参数为默认值 */
Boolean getBoolean(String name, Boolean defaultValue);
/** 解析全局配置参数,并且返回其{@link Short}形式对象 */
Short getShort(String name);
/** 解析全局配置参数,并且返回其{@link Short}形式对象。第二个参数为默认值 */
Short getShort(String name, Short defaultValue);
/** 解析全局配置参数,并且返回其{@link Integer}形式对象 */
Integer getInteger(String name);
/** 解析全局配置参数,并且返回其{@link Integer}形式对象。第二个参数为默认值 */
Integer getInteger(String name, Integer defaultValue);
/** 解析全局配置参数,并且返回其{@link Long}形式对象 */
Long getLong(String name);
/** 解析全局配置参数,并且返回其{@link Long}形式对象。第二个参数为默认值 */
Long getLong(String name, Long defaultValue);
/** 解析全局配置参数,并且返回其{@link Float}形式对象 */
Float getFloat(String name);
/** 解析全局配置参数,并且返回其{@link Float}形式对象。第二个参数为默认值 */
Float getFloat(String name, Float defaultValue);
/** 解析全局配置参数,并且返回其{@link Double}形式对象 */
Double getDouble(String name);
/** 解析全局配置参数,并且返回其{@link Double}形式对象。第二个参数为默认值 */
Double getDouble(String name, Double defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象 */
Date getDate(String name);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值 */
Date getDate(String name, Date defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值 */
Date getDate(String name, long defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象 */
Date getDate(String name, String format);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值 */
Date getDate(String name, String format, Date defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值 */
Date getDate(String name, String format, long defaultValue);
/** 解析全局配置参数,并且返回其{@link Enum}形式对象 */
> T getEnum(String name, Class enmType);
/** 解析全局配置参数,并且返回其{@link Enum}形式对象。第三个参数为默认值 */
> T getEnum(String name, Class enmType, T defaultValue);
/** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’) */
String getFilePath(String name);
/** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’)。第二个参数为默认值 */
String getFilePath(String name, String defaultValue);
/** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’) */
String getDirectoryPath(String name);
/** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’)。第二个参数为默认值 */
String getDirectoryPath(String name, String defaultValue);
/** 解析全局配置参数,并且返回其{@link SettingNode}形式对象 */
SettingNode getNode(String name);
/** 解析全局配置参数,并且返回其{@link Character}形式对象 */
Character[] getCharArray(String name);
/** 解析全局配置参数,并且返回其{@link Character}形式对象。第二个参数为默认值 */
Character[] getCharArray(String name, Character defaultValue);
/** 解析全局配置参数,并且返回其{@link String}形式对象 */
String[] getStringArray(String name);
/** 解析全局配置参数,并且返回其{@link String}形式对象。第二个参数为默认值 */
String[] getStringArray(String name, String defaultValue);
/** 解析全局配置参数,并且返回其{@link Boolean}形式对象 */
Boolean[] getBooleanArray(String name);
/** 解析全局配置参数,并且返回其{@link Boolean}形式对象。第二个参数为默认值 */
Boolean[] getBooleanArray(String name, Boolean defaultValue);
/** 解析全局配置参数,并且返回其{@link Short}形式对象 */
Short[] getShortArray(String name);
/** 解析全局配置参数,并且返回其{@link Short}形式对象。第二个参数为默认值 */
Short[] getShortArray(String name, Short defaultValue);
/** 解析全局配置参数,并且返回其{@link Integer}形式对象 */
Integer[] getIntegerArray(String name);
/** 解析全局配置参数,并且返回其{@link Integer}形式对象。第二个参数为默认值 */
Integer[] getIntegerArray(String name, Integer defaultValue);
/** 解析全局配置参数,并且返回其{@link Long}形式对象 */
Long[] getLongArray(String name);
/** 解析全局配置参数,并且返回其{@link Long}形式对象。第二个参数为默认值 */
Long[] getLongArray(String name, Long defaultValue);
/** 解析全局配置参数,并且返回其{@link Float}形式对象 */
Float[] getFloatArray(String name);
/** 解析全局配置参数,并且返回其{@link Float}形式对象。第二个参数为默认值 */
Float[] getFloatArray(String name, Float defaultValue);
/** 解析全局配置参数,并且返回其{@link Double}形式对象 */
Double[] getDoubleArray(String name);
/** 解析全局配置参数,并且返回其{@link Double}形式对象。第二个参数为默认值 */
Double[] getDoubleArray(String name, Double defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象 */
Date[] getDateArray(String name);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值 */
Date[] getDateArray(String name, Date defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值 */
Date[] getDateArray(String name, long defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象 */
Date[] getDateArray(String name, String format);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值 */
Date[] getDateArray(String name, String format, Date defaultValue);
/** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值 */
Date[] getDateArray(String name, String format, long defaultValue);
/** 解析全局配置参数,并且返回其{@link Enum}形式对象 */
> T[] getEnumArray(String name, Class enmType);
/** 解析全局配置参数,并且返回其{@link Enum}形式对象。第三个参数为默认值 */
> T[] getEnumArray(String name, Class enmType, T defaultValue);
/** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’) */
String[] getFilePathArray(String name);
/** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’)。第二个参数为默认值 */
String[] getFilePathArray(String name, String defaultValue);
/** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’) */
String[] getDirectoryPathArray(String name);
/** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’)。第二个参数为默认值 */
String[] getDirectoryPathArray(String name, String defaultValue);
/** 解析全局配置参数,并且返回其{@link SettingNode}形式对象 */
SettingNode[] getNodeArray(String name);
String[] getEnvNames();
/**
* 获取环境变量。
* @param name 环境变量名。
*/
String getEnv(String name);
/**
* 添加环境变量,添加的环境变量并不会影响到系统环境变量,它会使用内部Map保存环境变量从而避免影响JVM正常运行。
* @param name 环境变量名。
* @param value 环境变量值或环境变量表达式。
*/
void addEnv(String name, String value);
/**
* 删除环境变量,该方法从内部Map删除所保存的环境变量,这样做的目的是为了避免影响JVM正常运行。
* @param name 环境变量名。
*/
void removeEnv(String name);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy