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