//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.jobs.interactions.data; /** * Captures the source and target (UIMA) types of a relationship. * <p> * Has sensible hashcode, equals and toString implementations. * */ public class RelationPair { private final String source; private final String target; /** * Instantiates a new relation pair. * * @param pattern * the pattern */ public RelationPair(PatternReference pattern) { this(pattern.getSourceType(), pattern.getTargetType()); } /** * Instantiates a new relation pair. * * @param source * the source * @param target * the target */ public RelationPair(String source, String target) { this.source = source; this.target = target; } /** * Gets the source. * * @return the source */ public String getSource() { return source; } /** * Gets the target. * * @return the target */ public String getTarget() { return target; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (source == null ? 0 : source.hashCode()); result = prime * result + (target == null ? 0 : target.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; } final RelationPair other = (RelationPair) obj; if (source == null) { if (other.source != null) { return false; } } else if (!source.equals(other.source)) { return false; } if (target == null) { if (other.target != null) { return false; } } else if (!target.equals(other.target)) { return false; } return true; } @Override public String toString() { return String.format("RP[%s,%s]", source, target); } }