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

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