@Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Edge other = (Edge) obj;
                if (adjacentNodes == null) {
                        if (other.adjacentNodes != null)
                                return false;
                }
                else if (!adjacentNodes.equals(other.adjacentNodes))
                        return false;
                if (edgeState != other.edgeState)
                        return false;
                return true;
        }