/* * 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.core; import java.io.IOException; import java.util.Date; /** * <p> * 配置文件设置 * </p> * * @version : 2013-4-23 * @author 赵永春 (zyc@hasor.net) */ public interface Settings { public static final String DefaultNameSpace = "http://project.hasor.net/hasor/schema/main"; public static final String DefaultCharset = "UTF-8"; /** @return 已解析的命名空间列表。 */ public String[] getSettingArray(); /** 获取指在某个特定命名空间下的Settings接口对象。 */ public Settings getSettings(String namespace); /** 强制重新装载配置文件。 */ public void refresh() throws IOException; // /** 设置参数,如果出现多个值,则会覆盖。 */ public void setSetting(String key, Object value); /** 设置参数,如果出现多个值,则会覆盖。 */ public void setSetting(String key, Object value, String namespace); /** 将整个配置项的多个值全部删除。 */ public void removeSetting(String key, String namespace); /** 添加参数,如果参数名称相同则追加一项。 */ public void addSetting(String key, Object var, String currentXmlns); // /** 解析全局配置参数,并且返回其{@link Character}形式对象。 */ public Character getChar(String name); /** 解析全局配置参数,并且返回其{@link Character}形式对象。第二个参数为默认值。 */ public Character getChar(String name, Character defaultValue); /** 解析全局配置参数,并且返回其{@link String}形式对象。 */ public String getString(String name); /** 解析全局配置参数,并且返回其{@link String}形式对象。第二个参数为默认值。 */ public String getString(String name, String defaultValue); /** 解析全局配置参数,并且返回其{@link Boolean}形式对象。 */ public Boolean getBoolean(String name); /** 解析全局配置参数,并且返回其{@link Boolean}形式对象。第二个参数为默认值。 */ public Boolean getBoolean(String name, Boolean defaultValue); /** 解析全局配置参数,并且返回其{@link Short}形式对象。 */ public Short getShort(String name); /** 解析全局配置参数,并且返回其{@link Short}形式对象。第二个参数为默认值。 */ public Short getShort(String name, Short defaultValue); /** 解析全局配置参数,并且返回其{@link Integer}形式对象。 */ public Integer getInteger(String name); /** 解析全局配置参数,并且返回其{@link Integer}形式对象。第二个参数为默认值。 */ public Integer getInteger(String name, Integer defaultValue); /** 解析全局配置参数,并且返回其{@link Long}形式对象。 */ public Long getLong(String name); /** 解析全局配置参数,并且返回其{@link Long}形式对象。第二个参数为默认值。 */ public Long getLong(String name, Long defaultValue); /** 解析全局配置参数,并且返回其{@link Float}形式对象。 */ public Float getFloat(String name); /** 解析全局配置参数,并且返回其{@link Float}形式对象。第二个参数为默认值。 */ public Float getFloat(String name, Float defaultValue); /** 解析全局配置参数,并且返回其{@link Double}形式对象。 */ public Double getDouble(String name); /** 解析全局配置参数,并且返回其{@link Double}形式对象。第二个参数为默认值。 */ public Double getDouble(String name, Double defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。 */ public Date getDate(String name); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值。 */ public Date getDate(String name, Date defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值。 */ public Date getDate(String name, long defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。 */ public Date getDate(String name, String format); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值。 */ public Date getDate(String name, String format, Date defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值。 */ public Date getDate(String name, String format, long defaultValue); /** 解析全局配置参数,并且返回其{@link Enum}形式对象。*/ public <T extends Enum<?>> T getEnum(String name, Class<T> enmType); /** 解析全局配置参数,并且返回其{@link Enum}形式对象。第三个参数为默认值。 */ public <T extends Enum<?>> T getEnum(String name, Class<T> enmType, T defaultValue); /** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’)。*/ public String getFilePath(String name); /** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’)。第二个参数为默认值。 */ public String getFilePath(String name, String defaultValue); /** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’)。*/ public String getDirectoryPath(String name); /** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’)。第二个参数为默认值。 */ public String getDirectoryPath(String name, String defaultValue); /** 解析全局配置参数,并且返回其{@link XmlNode}形式对象。 */ public XmlNode getXmlNode(String name); // /** 解析全局配置参数,并且返回其{@link Character}形式对象。 */ public Character[] getCharArray(String name); /** 解析全局配置参数,并且返回其{@link Character}形式对象。第二个参数为默认值。 */ public Character[] getCharArray(String name, Character defaultValue); /** 解析全局配置参数,并且返回其{@link String}形式对象。 */ public String[] getStringArray(String name); /** 解析全局配置参数,并且返回其{@link String}形式对象。第二个参数为默认值。 */ public String[] getStringArray(String name, String defaultValue); /** 解析全局配置参数,并且返回其{@link Boolean}形式对象。 */ public Boolean[] getBooleanArray(String name); /** 解析全局配置参数,并且返回其{@link Boolean}形式对象。第二个参数为默认值。 */ public Boolean[] getBooleanArray(String name, Boolean defaultValue); /** 解析全局配置参数,并且返回其{@link Short}形式对象。 */ public Short[] getShortArray(String name); /** 解析全局配置参数,并且返回其{@link Short}形式对象。第二个参数为默认值。 */ public Short[] getShortArray(String name, Short defaultValue); /** 解析全局配置参数,并且返回其{@link Integer}形式对象。 */ public Integer[] getIntegerArray(String name); /** 解析全局配置参数,并且返回其{@link Integer}形式对象。第二个参数为默认值。 */ public Integer[] getIntegerArray(String name, Integer defaultValue); /** 解析全局配置参数,并且返回其{@link Long}形式对象。 */ public Long[] getLongArray(String name); /** 解析全局配置参数,并且返回其{@link Long}形式对象。第二个参数为默认值。 */ public Long[] getLongArray(String name, Long defaultValue); /** 解析全局配置参数,并且返回其{@link Float}形式对象。 */ public Float[] getFloatArray(String name); /** 解析全局配置参数,并且返回其{@link Float}形式对象。第二个参数为默认值。 */ public Float[] getFloatArray(String name, Float defaultValue); /** 解析全局配置参数,并且返回其{@link Double}形式对象。 */ public Double[] getDoubleArray(String name); /** 解析全局配置参数,并且返回其{@link Double}形式对象。第二个参数为默认值。 */ public Double[] getDoubleArray(String name, Double defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。 */ public Date[] getDateArray(String name); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值。 */ public Date[] getDateArray(String name, Date defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第二个参数为默认值。 */ public Date[] getDateArray(String name, long defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。 */ public Date[] getDateArray(String name, String format); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值。 */ public Date[] getDateArray(String name, String format, Date defaultValue); /** 解析全局配置参数,并且返回其{@link Date}形式对象。第三个参数为默认值。 */ public Date[] getDateArray(String name, String format, long defaultValue); /** 解析全局配置参数,并且返回其{@link Enum}形式对象。*/ public <T extends Enum<?>> T[] getEnumArray(String name, Class<T> enmType); /** 解析全局配置参数,并且返回其{@link Enum}形式对象。第三个参数为默认值。 */ public <T extends Enum<?>> T[] getEnumArray(String name, Class<T> enmType, T defaultValue); /** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’)。*/ public String[] getFilePathArray(String name); /** 解析全局配置参数,并且返回字符串(用于表示文件,结尾不带‘/’)。第二个参数为默认值。 */ public String[] getFilePathArray(String name, String defaultValue); /** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’)。*/ public String[] getDirectoryPathArray(String name); /** 解析全局配置参数,并且返回字符串(用于表示目录,结尾带‘/’)。第二个参数为默认值。 */ public String[] getDirectoryPathArray(String name, String defaultValue); /** 解析全局配置参数,并且返回其{@link XmlNode}形式对象。 */ public XmlNode[] getXmlNodeArray(String name); }