BakeoutController  0.1
A Controller for the Omicron vacuum chamber
ApplicationKernelFactory.java
1 package kernel;
2 
5 
9 public final class ApplicationKernelFactory implements KernelFactory {
13  private PortDriver portDriver;
14 
18  private Boolean doesKernelExist;
19 
23  private Kernel kernelInstance;
24 
28  private Boolean hasPortDriver;
29 
30  public ApplicationKernelFactory(){
31  this.doesKernelExist = Boolean.FALSE;
32 
33  this.hasPortDriver = Boolean.FALSE;
34  }
35 
39  @Override public void setPortDriver(PortDriver newPortDriver){
40  this.portDriver = newPortDriver;
41  this.hasPortDriver = Boolean.TRUE;
42  }
43 
52  @Override public Kernel getKernelInstance() throws
54  if (!canKernelBeStarted()){
55  throw new UnableToCreateKernelException("Cannot create kernel. " +
56  "Parameter missing");
57  }
58  if (!doesKernelExist){
59  createKernel();
60  }
61  return this.kernelInstance;
62  }
63 
67  @Override public Boolean canKernelBeStarted(){
68  if (!hasPortDriver){
69  return Boolean.FALSE;
70  } else {
71  return Boolean.TRUE;
72  }
73  }
74 
79  private void createKernel(){
80  this.kernelInstance = new ApplicationKernel(
81  this.portDriver
82  );
83  this.doesKernelExist = Boolean.TRUE;
84  }
85 }
void setPortDriver(PortDriver newPortDriver)
Git Repo