1 25 26 package org.snipsnap.render.macro; 27 28 import org.radeox.util.i18n.ResourceManager; 29 import org.snipsnap.render.macro.parameter.SnipMacroParameter; 30 import org.snipsnap.render.macro.list.Linkable; 31 import org.snipsnap.snip.Snip; 32 import org.snipsnap.snip.SnipSpaceFactory; 33 import org.snipsnap.snip.SnipLink; 34 import org.snipsnap.util.collection.Collections; 35 import org.snipsnap.util.collection.Filterator; 36 37 import java.io.IOException ; 38 import java.io.Writer ; 39 40 46 47 public class IndexSnipMacro extends ListOutputMacro { 48 public String [] getParamDescription() { 49 return ResourceManager.getString("i18n.messages", "macro.index.params").split(";"); 50 } 51 52 53 public String getName() { 54 return "index"; 55 } 56 57 public String getDescription() { 58 return ResourceManager.getString("i18n.messages", "macro.index.description"); 59 } 60 61 public void execute(Writer writer, SnipMacroParameter params) 62 throws IllegalArgumentException , IOException { 63 String type = null; 64 boolean showSize = true; 65 if (params.getLength() == 1) { 66 type = params.get("0"); 67 } 68 69 if (params.getLength() < 2) { 70 final Snip snip = params.getSnipRenderContext().getSnip(); 71 output(writer, 72 new Linkable() { 73 public String getLink() { 74 return SnipLink.getSpaceRoot()+"/"+snip.getNameEncoded(); 75 } 76 }, 77 ResourceManager.getString("i18n.messages", "macro.index.all.snips"), 78 Collections.filter(SnipSpaceFactory.getInstance().getAll(), 79 new Filterator() { 80 public boolean filter(Object obj) { 81 String name = ((Snip) obj).getName(); 82 if (name.startsWith("comment-")) { 83 return true; 84 } 85 return false; 86 } 87 } 88 ), ResourceManager.getString("i18n.messages", "macro.index.none"), type, showSize); 89 } else { 90 throw new IllegalArgumentException ("Number of arguments does not match"); 91 } 92 } 93 } 94 | Popular Tags |