BakeoutController-Basic  0.1
A Controller for the Omicron vacuum chamber
ApplicationKernelFactory.java
1 package kernel;
2 
4 import kernel.models.Kernel;
6 import org.jetbrains.annotations.Contract;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9 
13 public final class ApplicationKernelFactory implements KernelFactory {
17  private PortDriver portDriver;
18 
22  private Boolean doesKernelExist;
23 
27  private kernel.Kernel kernelInstance;
28 
32  private Boolean hasPortDriver;
33 
34  private static Logger log = LoggerFactory.getLogger
36 
37  public ApplicationKernelFactory(){
38  this.doesKernelExist = Boolean.FALSE;
39  this.hasPortDriver = Boolean.FALSE;
40  }
41 
45  @Override
46  public void setPortDriver(PortDriver newPortDriver){
47  log.debug("Setting port driver to {}", newPortDriver.toString());
48 
49  this.portDriver = newPortDriver;
50  this.hasPortDriver = Boolean.TRUE;
51  }
52 
61  @Override
64  if (!canKernelBeStarted()){
65  throw new UnableToCreateKernelException("Cannot create kernel. " +
66  "Parameter missing");
67  }
68  if (!doesKernelExist){
69  createKernel();
70  }
71  return this.kernelInstance;
72  }
73 
77  @Contract(pure = true)
78  @Override
79  public Boolean canKernelBeStarted(){
80  if (!hasPortDriver){
81  return Boolean.FALSE;
82  } else {
83  return Boolean.TRUE;
84  }
85  }
86 
91  private void createKernel(){
92  this.kernelInstance = new Kernel(
93  this.portDriver
94  );
95  this.doesKernelExist = Boolean.TRUE;
96  }
97 }
void setPortDriver(PortDriver newPortDriver)
Git Repo