1c0d833004b92a228ffa382ac994fa4a92d1e97e
[Mograsim.git] / era.mi / src / era / mi / logic / components / gates / NotGate.java
1 package era.mi.logic.components.gates;
2
3 import java.util.List;
4
5 import era.mi.logic.components.BasicComponent;
6 import era.mi.logic.wires.Wire.WireEnd;
7
8 public class NotGate extends BasicComponent
9 {
10         private WireEnd in;
11         private WireEnd out;
12
13         public NotGate(int processTime, WireEnd in, WireEnd out)
14         {
15                 super(processTime);
16                 this.in = in;
17                 in.addObserver(this);
18                 this.out = out;
19         }
20
21         @Override
22         protected void compute()
23         {
24                 out.feedSignals(in.getValues().not());
25         }
26
27         public WireEnd getIn()
28         {
29                 return in;
30         }
31
32         public WireEnd getOut()
33         {
34                 return out;
35         }
36
37         @Override
38         public List<WireEnd> getAllInputs()
39         {
40                 return List.of(in);
41         }
42
43         @Override
44         public List<WireEnd> getAllOutputs()
45         {
46                 return List.of(out);
47         }
48 }