531cd6d0f403d02f989224a8dd38948b1b6dca27
[Mograsim.git] / plugins / net.mograsim.logic.model.verilog / src / net / mograsim / logic / model / verilog / model / NamedSignal.java
1 package net.mograsim.logic.model.verilog.model;
2
3 import java.util.Objects;
4
5 public abstract class NamedSignal extends Signal
6 {
7         private final String name;
8
9         public NamedSignal(Type type, String name, int width)
10         {
11                 super(type, width);
12                 this.name = Objects.requireNonNull(name);
13         }
14
15         public String getName()
16         {
17                 return name;
18         }
19
20         @Override
21         public String toReferenceVerilogCode()
22         {
23                 return name;
24         }
25
26         @Override
27         public String toString()
28         {
29                 return name + "[" + getWidth() + "]";
30         }
31
32         @Override
33         public int hashCode()
34         {
35                 final int prime = 31;
36                 int result = super.hashCode();
37                 result = prime * result + ((name == null) ? 0 : name.hashCode());
38                 return result;
39         }
40
41         @Override
42         public boolean equals(Object obj)
43         {
44                 if (this == obj)
45                         return true;
46                 if (!super.equals(obj))
47                         return false;
48                 if (getClass() != obj.getClass())
49                         return false;
50                 NamedSignal other = (NamedSignal) obj;
51                 if (name == null)
52                 {
53                         if (other.name != null)
54                                 return false;
55                 } else if (!name.equals(other.name))
56                         return false;
57                 return true;
58         }
59 }