1 package org.simantics.graph.diff;
\r
3 public class Statement {
\r
9 public Statement(int subject, int predicate, int inverse, int object) {
\r
10 this.subject = subject;
\r
11 this.predicate = predicate;
\r
12 this.inverse = inverse;
\r
13 this.object = object;
\r
17 public int hashCode() {
\r
18 final int prime = 31;
\r
20 result = prime * result + inverse;
\r
21 result = prime * result + object;
\r
22 result = prime * result + predicate;
\r
23 result = prime * result + subject;
\r
28 public boolean equals(Object obj) {
\r
33 if (getClass() != obj.getClass())
\r
35 Statement other = (Statement) obj;
\r
36 if (inverse != other.inverse)
\r
38 if (object != other.object)
\r
40 if (predicate != other.predicate)
\r
42 if (subject != other.subject)
\r
47 public Statement map(int[] map) {
\r
48 int mappedSubject = map[subject];
\r
49 if(mappedSubject < 0) return null;
\r
50 int mappedPredicate = map[predicate];
\r
51 if(mappedPredicate < 0) return null;
\r
54 mappedInverse = inverse;
\r
56 mappedInverse = map[inverse];
\r
57 if(mappedInverse < 0) return null;
\r
59 int mappedObject = map[object];
\r
60 if(mappedObject < 0) return null;
\r
61 return new Statement(mappedSubject, mappedPredicate, mappedInverse, mappedObject);
\r