/** *{@inheritDoc} */ @Override public <S extends IOSetting> S addSetting(IOSetting setting) { return (S) settings.add(setting); }
/** *{@inheritDoc} */ @Override public <S extends IOSetting> S getSetting(String name) { return settings.get(name); }
/** *{@inheritDoc} */ @Override public Collection<IOSetting> getSettings() { return settings.getSettings(); }
/** * Determines whether the manager currently holds a setting of * the provided name. * * @param name name of the setting * * @return whether the manager currently contains the desired setting */ public boolean has(String name) { return settings.containsKey(key(name)); }
/** *{@inheritDoc} */ @Override public boolean hasSetting(String name) { return settings.has(name); }
/** *{@inheritDoc} */ @Override public IOSetting[] getIOSettings() { return settings.toArray(new IOSetting[0]); }
/** * Determines whether the manager currently holds a setting of * the provided name. * * @param name name of the setting * * @return whether the manager currently contains the desired setting */ public boolean has(String name) { return settings.containsKey(key(name)); }
/** *{@inheritDoc} */ @Override public boolean hasSetting(String name) { return settings.has(name); }
/** *{@inheritDoc} */ @Override public IOSetting[] getIOSettings() { return settings.toArray(new IOSetting[0]); }
/** * Generate a simple key for the given setting. This method is a convenience * method for {@link #key(String)} * * @param setting the setting to which a key will be generated for * * @return the keyed name for the setting */ private static String key(ISetting setting) { return key(setting.getName()); }
/** *{@inheritDoc} */ @Override public <S extends IOSetting> S getSetting(String name, Class<S> c) { return settings.get(name, c); }
/** *{@inheritDoc} */ @Override public Collection<IOSetting> getSettings() { return settings.getSettings(); }
/** *{@inheritDoc} */ @Override public <S extends IOSetting> S addSetting(IOSetting setting) { return (S) settings.add(setting); }
/** * Generate a simple key for the given setting. This method is a convenience * method for {@link #key(String)} * * @param setting the setting to which a key will be generated for * * @return the keyed name for the setting */ private static String key(ISetting setting) { return key(setting.getName()); }
/** *{@inheritDoc} */ @Override public <S extends IOSetting> S getSetting(String name, Class<S> c) { return settings.get(name, c); }
/** * Compatibility method generates an array of ISetting objects. This method * wraps a call to {@link Collection#toArray(Object[])}} and so is used the same way. * Note: it is preferable to use the collection's accessor {@link #getSettings()} * * Usage: <pre>{@code * IOSetting[] settings = manager.toArray(new IOSetting[0]); * }</pre> * * @param c empty array of type to generate * * @return new fixed array of the settings managed by the manager * * @see #getSettings() */ public T[] toArray(T[] c) { return (T[]) getSettings().toArray(c); }
/** * Access the setting stored for given name. If not setting is found the provided * name an {@link InvalidParameterException} will be thrown. The method is generic * to allow simplified access to settings. This however means that if the incorrect * type is provided a {@link ClassCastException} may be thrown. * * <pre>{@code * SettingManager manager = ...; * manger.add(new BooleanIOSetting("name", ...)); * * BooleanIOSetting setting = manager.get("Name"); // okay * OptionIOSetting setting = manager.get("Name"); // class cast exception * }</pre> * * @param name name of the setting to retrieve * @param <S> type that will be return * * @return instance of the setting for the provided name * * @see #get(String, Class) */ public <S extends T> S get(String name) { String key = key(name); if (settings.containsKey(key)) return (S) settings.get(key); throw new InvalidParameterException("No setting found for name " + name + "(key=" + key + ") " + "available settings are: " + settings.keySet()); }
/** *{@inheritDoc} */ @Override public <S extends IOSetting> S getSetting(String name) { return settings.get(name); }
/** * Compatibility method generates an array of ISetting objects. This method * wraps a call to {@link Collection#toArray(Object[])}} and so is used the same way. * Note: it is preferable to use the collection's accessor {@link #getSettings()} * * Usage: <pre>{@code * IOSetting[] settings = manager.toArray(new IOSetting[0]); * }</pre> * * @param c empty array of type to generate * * @return new fixed array of the settings managed by the manager * * @see #getSettings() */ public T[] toArray(T[] c) { return (T[]) getSettings().toArray(c); }