Merge logic of origin into logic
[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.Util;
6 import era.mi.logic.components.BasicComponent;
7 import era.mi.logic.wires.Wire.WireEnd;
8
9 public class NotGate extends BasicComponent
10 {
11         private WireEnd in;
12         private WireEnd out;
13
14         public NotGate(int processTime, WireEnd in, WireEnd out)
15         {
16                 super(processTime);
17                 this.in = in;
18                 in.addObserver(this);
19                 this.out = out;
20         }
21
22         @Override
23         protected void compute()
24         {
25                 out.feedSignals(Util.not(in.getValues()));
26         }
27
28         public WireEnd getIn()
29         {
30                 return in;
31         }
32
33         public WireEnd getOut()
34         {
35                 return out;
36         }
37
38         @Override
39         public List<WireEnd> getAllInputs()
40         {
41                 return List.of(in);
42         }
43
44         @Override
45         public List<WireEnd> getAllOutputs()
46         {
47                 return List.of(out);
48         }
49 }