public final int doWikiStartTag() throws IOException { WikiPage page = m_wikiContext.getPage(); if (page != null) { Date d = page.getLastModified(); // // Date may be null if the page does not exist. // if (d != null) { SimpleDateFormat fmt; if (m_format == null) fmt = Preferences.getDateFormat(m_wikiContext, TimeFormat.DATETIME); else fmt = new SimpleDateFormat(m_format); pageContext.getOut().write(fmt.format(d)); } else { pageContext.getOut().write("<never>"); } } return SKIP_BODY; }
// 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); }