Boolean includeParameterValues() { Boolean logParameterValues = optionsRepository.get(Boolean.class, INCLUDE_PARAMETER_VALUES); return logParameterValues == null ? false : logParameterValues; } }
@Override public void setModulelist(String modulelist) { optionsRepository.setSet(String.class, MODULE_NAMES, modulelist); // setting effective string optionsRepository.set(String.class, MODULELIST, P6Util.joinNullSafe(optionsRepository.getSet(String.class, MODULE_NAMES), ",")); optionsRepository.setSet(P6Factory.class, MODULE_FACTORIES, modulelist); }
public void registerOptionChangedListener(P6OptionChangedListener listener) { optionsRepository.registerOptionChangedListener(listener); }
@Test public void testUnSetUsesDefaultForNullValue() { optRepo.initCompleted(); optRepo.set(String.class, "option1", "foo"); Assert.assertEquals("foo", optRepo.get(String.class, "option1")); optRepo.setOrUnSet(String.class, "option1", null, "default"); Assert.assertEquals("default", optRepo.get(String.class, "option1")); }
@Override public void setInclude(String include) { optionsRepository.setSet(String.class, INCLUDE_LIST, include); // setting effective string optionsRepository.set(String.class, INCLUDE, P6Util.joinNullSafe(optionsRepository.getSet(String.class, INCLUDE_LIST), ",")); optionsRepository.setOrUnSet(Pattern.class, INCLUDE_EXCLUDE_PATTERN, computeIncludeExcludePattern(), defaults.get(INCLUDE_EXCLUDE_PATTERN)); }
@Test public void testSetNullDoesNotModifyValue() { optRepo.initCompleted(); optRepo.set(String.class, "option1", "foo"); Assert.assertEquals("foo", optRepo.get(String.class, "option1")); optRepo.set(String.class, "option1", null); Assert.assertEquals("foo", optRepo.get(String.class, "option1")); }
@Test public void testSetSetEmptyStringNullsValue() { optRepo.initCompleted(); optRepo.setSet(String.class, "option1", "foo"); Assert.assertEquals(new HashSet<String>(Arrays.asList("foo")), optRepo.get(String.class, "option1")); optRepo.setSet(String.class, "option1", ""); Assert.assertNull(optRepo.get(String.class, "option1")); }
public <T> boolean set(Class<T> type, String key, Object value) { if (value == null) { return false; } return setOrUnSet(type, key, value, null); }
final Set<T> oldValue = getSet(type, key); Set<T> newValue = null; newValue.add((T) parse(type, item)); fireOptionChanged(key, oldValue, newValue);
public <T> boolean setOrUnSet(Class<T> type, String key, Object value, Object defaultValue) { if (key == null || key.isEmpty()) { throw new IllegalArgumentException("key can be neither null nor empty!"); } if (value == null) { value = defaultValue; } if (value == null) { setInternal(key, value); } else { setInternal(key, parse(type, value)); } return true; }
optionsRepository.initCompleted();
@Test(expected = IllegalArgumentException.class) public void testParseForSetFails() { optRepo.parse(Set.class, new HashSet<String>()); Assert.fail(); }
private P6MBeansRegistry constructMBean(P6MBeansRegistry mBeansRegistry, final String jmxPrefix, final boolean appendProperty) throws Exception { // none to be reused registry if (null == mBeansRegistry) { mBeansRegistry = new P6MBeansRegistry(); } final P6OptionsRepository repo = new P6OptionsRepository(); final P6SpyOptions opts = new P6SpyOptions(repo); opts.load(opts.getDefaults()); opts.setAppend(appendProperty); opts.setJmxPrefix(jmxPrefix); repo.initCompleted(); mBeansRegistry.registerMBeans(new ArrayList<P6LoadableOptions>(Arrays.asList(opts))); checkMBeanAppendProperty(jmxPrefix, appendProperty); return mBeansRegistry; }
public void unregisterOptionChangedListener(P6OptionChangedListener listener) { optionsRepository.unregisterOptionChangedListener(listener); }
@Test(expected = IllegalArgumentException.class) public void testSetSetForDeprecatedMinusPrefixOnFirstValueFails() { optRepo.setSet(String.class, "option1", "-value1,value2"); }
public void initCompleted() { this.initCompleted = true; fireDelayedOptionChanges(); }
void setInternal(String key, Object value) { final Object oldValue = map.put(key, value); // propagate the changes fireOptionChanged(key, oldValue, value); }