public WildcardFilenameFilter(String regex) { try { matcher_ = new Perl5Matcher(); PatternCompiler compiler = new GlobCompiler(); pattern_ = compiler.compile(regex); } catch (MalformedPatternException e) { throw (new IllegalArgumentException(e.getMessage())); } }
// FIXME: The compiled pattern strings should really be cached somehow. public void initialize(WikiContext context, Map params) throws PluginException { m_dateFormat = Preferences.getDateFormat(context, TimeFormat.DATETIME); m_engine = context.getEngine(); m_maxwidth = TextUtil.parseIntParameter((String) params.get(PARAM_MAXWIDTH), Integer.MAX_VALUE); if (m_maxwidth < 0) m_maxwidth = 0; String s = (String) params.get(PARAM_SEPARATOR); if (s != null) { m_separator = s; // pre-2.1.145 there was a separator at the end of the list // if they set the parameters, we use the new format of // before Item1 after separator before Item2 after separator before Item3 after m_after = ""; } s = (String) params.get(PARAM_BEFORE); if (s != null) { m_before = s; } s = (String) params.get(PARAM_AFTER); if (s != null) { m_after = s; } s = (String) params.get(PARAM_EXCLUDE); if (s != null) { try { PatternCompiler pc = new GlobCompiler(); String[] ptrns = StringUtils.split(s, ","); m_exclude = new Pattern[ptrns.length]; for (int i = 0; i < ptrns.length; i++) { m_exclude[i] = pc.compile(ptrns[i]); } } catch (MalformedPatternException e) { throw new PluginException("Exclude-parameter has a malformed pattern: " + e.getMessage()); } } // TODO: Cut-n-paste, refactor s = (String) params.get(PARAM_INCLUDE); if (s != null) { try { PatternCompiler pc = new GlobCompiler(); String[] ptrns = StringUtils.split(s, ","); m_include = new Pattern[ptrns.length]; for (int i = 0; i < ptrns.length; i++) { m_include[i] = pc.compile(ptrns[i]); } } catch (MalformedPatternException e) { throw new PluginException("Include-parameter has a malformed pattern: " + e.getMessage()); } } // log.debug( "Requested maximum width is "+m_maxwidth ); s = (String) params.get(PARAM_SHOW); if (s != null) { if (s.equalsIgnoreCase("count")) { m_show = "count"; } } s = (String) params.get(PARAM_LASTMODIFIED); if (s != null) { if (s.equalsIgnoreCase("true")) { if (m_show.equals("count")) { m_lastModified = true; } else { throw new PluginException( "showLastModified=true is only valid if show=count is also specified"); } } } initSorter(context, params); }