private String computeIncludeExcludePattern() { final String excludes = P6Util.joinNullSafe(optionsRepository.getSet(String.class, EXCLUDE_LIST), "|"); final String includes = P6Util.joinNullSafe(optionsRepository.getSet(String.class, INCLUDE_LIST), "|"); if (excludes.length() == 0 && includes.length() == 0) { return null; } final StringBuilder sb = new StringBuilder("(?mis)^"); if (excludes.length() > 0 ) { sb.append("(?!.*(").append(excludes).append(").*)"); } if (includes.length() > 0 ) { sb.append("(.*(").append(includes).append(").*)"); } else { // make sure to match any string here, if no explicit includes specified sb.append("(.*)"); } return sb.append("$").toString(); }
@Override public void setDriverlist(final String driverlist) { optionsRepository.setSet(String.class, DRIVER_NAMES, driverlist); // setting effective string optionsRepository.set(String.class, DRIVERLIST, P6Util.joinNullSafe(optionsRepository.getSet(String.class, DRIVER_NAMES), ",")); }
@Test public void testJoinNullSafe() { Assert.assertEquals("", P6Util.joinNullSafe(null, null)); Assert.assertEquals("", P6Util.joinNullSafe(null, "")); Assert.assertEquals("", P6Util.joinNullSafe(null, ",")); Assert.assertEquals("", P6Util.joinNullSafe(Collections.<String>emptyList(), null)); Assert.assertEquals("", P6Util.joinNullSafe(Collections.<String>emptyList(), ",")); Assert.assertEquals("foo", P6Util.joinNullSafe(Arrays.asList("foo"), ",")); Assert.assertEquals("foobar", P6Util.joinNullSafe(Arrays.asList("foo", "bar"), null)); Assert.assertEquals("foo,bar", P6Util.joinNullSafe(Arrays.asList("foo", "bar"), ",")); Assert.assertEquals("foo|bar|aaa", P6Util.joinNullSafe(Arrays.asList("foo", "bar", "aaa"), "|")); }
@Override public void setExclude(String exclude) { optionsRepository.setSet(String.class, EXCLUDE_LIST, exclude); // setting effective string optionsRepository.set(String.class, EXCLUDE, P6Util.joinNullSafe(optionsRepository.getSet(String.class, EXCLUDE_LIST), ",")); optionsRepository.setOrUnSet(Pattern.class, INCLUDE_EXCLUDE_PATTERN, computeIncludeExcludePattern(), defaults.get(INCLUDE_EXCLUDE_PATTERN)); }
@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)); }
@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); }
private String computeIncludeExcludePattern() { final String excludes = P6Util.joinNullSafe(optionsRepository.getSet(String.class, EXCLUDE_LIST), "|"); final String includes = P6Util.joinNullSafe(optionsRepository.getSet(String.class, INCLUDE_LIST), "|"); if (excludes.length() == 0 && includes.length() == 0) { return null; } final StringBuilder sb = new StringBuilder("(?mis)^"); if (excludes.length() > 0 ) { sb.append("(?!.*(").append(excludes).append(").*)"); } if (includes.length() > 0 ) { sb.append("(.*(").append(includes).append(").*)"); } else { // make sure to match any string here, if no explicit includes specified sb.append("(.*)"); } return sb.append("$").toString(); }
@Override public void setDriverlist(final String driverlist) { optionsRepository.setSet(String.class, DRIVER_NAMES, driverlist); // setting effective string optionsRepository.set(String.class, DRIVERLIST, P6Util.joinNullSafe(optionsRepository.getSet(String.class, DRIVER_NAMES), ",")); }
@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)); }
@Override public void setExclude(String exclude) { optionsRepository.setSet(String.class, EXCLUDE_LIST, exclude); // setting effective string optionsRepository.set(String.class, EXCLUDE, P6Util.joinNullSafe(optionsRepository.getSet(String.class, EXCLUDE_LIST), ",")); optionsRepository.setOrUnSet(Pattern.class, INCLUDE_EXCLUDE_PATTERN, computeIncludeExcludePattern(), defaults.get(INCLUDE_EXCLUDE_PATTERN)); }
@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); }