extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/counter/CounterServiceFactory.java

Code
Comments
Other
Rev Date Author Line
3059 19 Dec 14 nicklas 1 package net.sf.basedb.reggie.counter;
3059 19 Dec 14 nicklas 2
3059 19 Dec 14 nicklas 3 import net.sf.basedb.clients.web.extensions.service.ServiceControllerAction;
3059 19 Dec 14 nicklas 4 import net.sf.basedb.core.SessionControl;
3059 19 Dec 14 nicklas 5 import net.sf.basedb.util.extensions.ActionFactory;
3059 19 Dec 14 nicklas 6 import net.sf.basedb.util.extensions.Extension;
3059 19 Dec 14 nicklas 7 import net.sf.basedb.util.extensions.InvokationContext;
3059 19 Dec 14 nicklas 8
3059 19 Dec 14 nicklas 9 /**
3059 19 Dec 14 nicklas 10   Action factory and service controller for the {@link CounterService}.
3059 19 Dec 14 nicklas 11   
3059 19 Dec 14 nicklas 12   @author nicklas
3059 19 Dec 14 nicklas 13   @since 3.0
3059 19 Dec 14 nicklas 14 */
3059 19 Dec 14 nicklas 15 public class CounterServiceFactory 
3059 19 Dec 14 nicklas 16   implements ActionFactory<ServiceControllerAction> 
3059 19 Dec 14 nicklas 17 {
3059 19 Dec 14 nicklas 18
3059 19 Dec 14 nicklas 19   /*
3059 19 Dec 14 nicklas 20     From the ActionFactory interface
3059 19 Dec 14 nicklas 21     --------------------------------
3059 19 Dec 14 nicklas 22   */
3059 19 Dec 14 nicklas 23   @Override
3572 02 Nov 15 nicklas 24   public boolean prepareContext(InvokationContext<? super ServiceControllerAction> context) 
3059 19 Dec 14 nicklas 25   {
3059 19 Dec 14 nicklas 26     return true;
3059 19 Dec 14 nicklas 27   }
3059 19 Dec 14 nicklas 28   
3059 19 Dec 14 nicklas 29   @Override
3572 02 Nov 15 nicklas 30   public ServiceControllerAction[] getActions(InvokationContext<? super ServiceControllerAction> context)
3059 19 Dec 14 nicklas 31   {
3059 19 Dec 14 nicklas 32     SessionControl sc = context.getClientContext().getSessionControl();
3059 19 Dec 14 nicklas 33     return new ServiceControllerAction[] { new CounterServiceControllerAction(sc, context.getExtension()) };
3059 19 Dec 14 nicklas 34   }
3059 19 Dec 14 nicklas 35   // ---------------------------------------------
3059 19 Dec 14 nicklas 36
3059 19 Dec 14 nicklas 37   
3059 19 Dec 14 nicklas 38   static class CounterServiceControllerAction
3059 19 Dec 14 nicklas 39     implements ServiceControllerAction
3059 19 Dec 14 nicklas 40   {
3059 19 Dec 14 nicklas 41     private final SessionControl sc;
3571 30 Oct 15 nicklas 42     private final Extension<ServiceControllerAction> ext;
3059 19 Dec 14 nicklas 43     
3572 02 Nov 15 nicklas 44     @SuppressWarnings({ "unchecked", "rawtypes" })
3059 19 Dec 14 nicklas 45     CounterServiceControllerAction(SessionControl sc, Extension ext)
3059 19 Dec 14 nicklas 46     {
3059 19 Dec 14 nicklas 47       this.sc = sc;
3571 30 Oct 15 nicklas 48       this.ext = (Extension<ServiceControllerAction>)ext;
3059 19 Dec 14 nicklas 49     }
3059 19 Dec 14 nicklas 50     
3059 19 Dec 14 nicklas 51     /*
3059 19 Dec 14 nicklas 52       From the ServiceControllerAction interface
3059 19 Dec 14 nicklas 53       ------------------------------------------
3059 19 Dec 14 nicklas 54     */
3059 19 Dec 14 nicklas 55     @Override
3059 19 Dec 14 nicklas 56     public boolean isRunning()
3059 19 Dec 14 nicklas 57     {
3059 19 Dec 14 nicklas 58       return CounterService.getInstance().isRunning();
3059 19 Dec 14 nicklas 59     }
3059 19 Dec 14 nicklas 60   
3059 19 Dec 14 nicklas 61     @Override
3059 19 Dec 14 nicklas 62     public void start() 
3059 19 Dec 14 nicklas 63     {
3059 19 Dec 14 nicklas 64       CounterService.getInstance().start(sc, ext);
3059 19 Dec 14 nicklas 65     }
3059 19 Dec 14 nicklas 66   
3059 19 Dec 14 nicklas 67     @Override
3059 19 Dec 14 nicklas 68     public void stop() 
3059 19 Dec 14 nicklas 69     {
3059 19 Dec 14 nicklas 70       CounterService.getInstance().stop();
3059 19 Dec 14 nicklas 71     }
3059 19 Dec 14 nicklas 72     // --------------------------------------
3059 19 Dec 14 nicklas 73   
3059 19 Dec 14 nicklas 74     @Override
3059 19 Dec 14 nicklas 75     public String toString() 
3059 19 Dec 14 nicklas 76     {
3059 19 Dec 14 nicklas 77       return "Counter service";
3059 19 Dec 14 nicklas 78     }
3059 19 Dec 14 nicklas 79   }
3059 19 Dec 14 nicklas 80
3059 19 Dec 14 nicklas 81   
3059 19 Dec 14 nicklas 82 }