extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/projectarchive/ProjectArchiveServiceFactory.java

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