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