/* Copyright 2012 Tim Garrett, Mothsoft LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mothsoft.alexis.domain;
import java.util.Map;
public class Edge {
private Node nodeA;
private Node nodeB;
private Map<String, String> properties;
public Edge(Node nodeA, Node nodeB) {
this.nodeA = nodeA;
this.nodeB = nodeB;
}
public Edge(Node nodeA, Node nodeB, Map<String, String> properties) {
this.nodeA = nodeA;
this.nodeB = nodeB;
this.properties = properties;
}
public Node getNodeA() {
return nodeA;
}
public Node getNodeB() {
return nodeB;
}
public Map<String, String> getProperties() {
return this.properties;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((nodeA == null) ? 0 : nodeA.hashCode());
result = prime * result + ((nodeB == null) ? 0 : nodeB.hashCode());
result = prime * result + ((properties == null) ? 0 : properties.hashCode());
return result;
}
@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 (nodeA == null) {
if (other.nodeA != null)
return false;
} else if (!nodeA.equals(other.nodeA))
return false;
if (nodeB == null) {
if (other.nodeB != null)
return false;
} else if (!nodeB.equals(other.nodeB))
return false;
if (properties == null) {
if (other.properties != null)
return false;
} else if (!properties.equals(other.properties))
return false;
return true;
}
}