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