Mercurial Hosting > nabble
view src/nabble/view/web/template/InstantMailNamespace.java @ 62:4674ed7d56df default tip
remove n2
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 30 Sep 2023 20:25:29 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
package nabble.view.web.template; import java.util.List; import java.util.ArrayList; import java.util.Map; import nabble.model.Node; import nabble.model.Subscription; import nabble.model.User; import nabble.naml.compiler.Command; import nabble.naml.compiler.CommandSpec; import nabble.naml.compiler.Interpreter; import nabble.naml.compiler.IPrintWriter; import nabble.naml.compiler.Namespace; import nabble.naml.compiler.ScopedInterpreter; @Namespace ( name = "instant_mail", global = true ) public final class InstantMailNamespace { private final Node node; private final Map<User,Subscription> subscriptionMap; public InstantMailNamespace(Node node,Map<User,Subscription> subscriptionMap) { this.node = node; this.subscriptionMap = subscriptionMap; } public static final CommandSpec new_node = CommandSpec.DO; @Command public void new_node(IPrintWriter out,ScopedInterpreter<NodeNamespace> interp) { NodeNamespace nodeNs = new NodeNamespace(node); out.print( interp.getArg(nodeNs,"do") ); } public static final CommandSpec remove_from_instant_mail = CommandSpec.NO_OUTPUT() .dotParameter("user") .build() ; @Command public void remove_from_instant_mail(IPrintWriter out,Interpreter interp) { UserNamespace ns = interp.getArgAsNamespace(UserNamespace.class,"user"); subscriptionMap.remove(ns.user()); } public static final CommandSpec subscription_list = CommandSpec.DO; @Command public void subscription_list(IPrintWriter out,ScopedInterpreter<SubscriptionNamespace.SubscriptionList> interp) { List<Subscription> list = new ArrayList<Subscription>(subscriptionMap.values()); out.print( interp.getArg(new SubscriptionNamespace.SubscriptionList(list),"do") ); } }