package com.limegroup.gnutella.settings; import java.util.Properties; import com.limegroup.gnutella.util.StringUtils; /** * Class for an Array of Strings setting. */ public class StringArraySetting extends Setting { private String[] value; /** * Creates a new <tt>StringArraySetting</tt> instance with the specified * key and default value. * * @param key the constant key to use for the setting * @param defaultInt the default value to use for the setting */ StringArraySetting(Properties defaultProps, Properties props, String key, String[] defaultValue) { super(defaultProps, props, key, decode(defaultValue), null); } StringArraySetting(Properties defaultProps, Properties props, String key, String[] defaultValue, String simppKey) { super(defaultProps, props, key, decode(defaultValue), simppKey); } /** * Accessor for the value of this setting. * * @return the value of this setting */ public String[] getValue() { return value; } /** * Mutator for this setting. * * @param value the value to store */ public void setValue(String[] value) { super.setValue(decode(value)); } /** Load value from property string value * @param sValue property string value * */ protected void loadValue(String sValue) { value = encode(sValue); } /** * Splits the string into an Array */ private static final String[] encode(String src) { if (src == null || src.length()==0) { return (new String[0]); } return StringUtils.split(src, ";"); } /** * Separates each field of the array by a semicolon */ private static final String decode(String[] src) { if (src == null || src.length==0) { return ""; } StringBuffer buffer = new StringBuffer(); for(int i = 0; i < src.length; i++) { buffer.append(src[i]); if (i < src.length-1) { buffer.append(';'); } } return buffer.toString(); } }