package com.porcupine.struct; import com.porcupine.math.Calc; /** * Structure of 3 objects. * * @author Ondřej Hruška (MightyPork) * @copy (c) 2012 * @param 1st object class * @param 2nd object class * @param 3rd object class */ public class Struct3 { /** * 1st object */ public T1 a; /** * 2nd object */ public T2 b; /** * 3rd object */ public T3 c; /** * Make structure of 3 objects * * @param objA 1st object * @param objB 2nd object * @param objC 3rd object */ public Struct3(T1 objA, T2 objB, T3 objC) { a = objA; b = objB; c = objC; } /** * @return 1st object */ public T1 getA() { return a; } /** * @return 2nd object */ public T2 getB() { return b; } /** * @return 3rd object */ public T3 getC() { return c; } /** * @return 1st object */ public T1 get1() { return a; } /** * @return 2nd object */ public T2 get2() { return b; } /** * @return 3rd object */ public T3 get3() { return c; } /** * Set 1st object * * @param obj 1st object */ public void setA(T1 obj) { a = obj; } /** * Set 2nd object * * @param obj 2nd object */ public void setB(T2 obj) { b = obj; } /** * Set 3rd object * * @param obj 3rd object */ public void setC(T3 obj) { c = obj; } /** * Set 1st object * * @param obj 1st object */ public void set1(T1 obj) { a = obj; } /** * Set 2nd object * * @param obj 2nd object */ public void set2(T2 obj) { b = obj; } /** * Set 3rd object * * @param obj 3rd object */ public void set3(T3 obj) { c = obj; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (!this.getClass().equals(obj.getClass())) { return false; } Struct3 t = (Struct3) obj; return Calc.areObjectsEqual(a, t.a) && Calc.areObjectsEqual(b, t.b) && Calc.areObjectsEqual(c, t.c); } @Override public int hashCode() { int hash = 0; hash += (a == null ? 0 : a.hashCode()); hash += (b == null ? 0 : b.hashCode()); hash += (c == null ? 0 : c.hashCode()); return hash; } @Override public String toString() { return "STRUCT {" + a + "," + b + "," + c + "}"; } }