Triple.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package cz.senslog.analyzer.util;
  2. import java.util.Objects;
  3. public final class Triple<A, B, C> {
  4. private final A item1;
  5. private final B item2;
  6. private final C item3;
  7. public static <A, B, C> Triple<A, B, C> of(A item1, B item2, C item3) {
  8. return new Triple<>(item1, item2, item3);
  9. }
  10. private Triple(A item1, B item2, C item3) {
  11. this.item1 = item1;
  12. this.item2 = item2;
  13. this.item3 = item3;
  14. }
  15. public A getItem1() {
  16. return this.item1;
  17. }
  18. public B getItem2() {
  19. return this.item2;
  20. }
  21. public C getItem3() {
  22. return this.item3;
  23. }
  24. public boolean equals(Object o) {
  25. if (this == o) {
  26. return true;
  27. } else if (o != null && this.getClass() == o.getClass()) {
  28. Triple<?, ?, ?> triple = (Triple<?,?, ?>)o;
  29. return this.item1.equals(triple.item1) && this.item2.equals(triple.item2) && this.item3.equals(triple.item3);
  30. } else {
  31. return false;
  32. }
  33. }
  34. public int hashCode() {
  35. return Objects.hash(this.item1, this.item2, this.item3);
  36. }
  37. }