boolean (Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Imaginary<?, ?> imaginary = (Imaginary<?, ?>)o; if (!myCreator.equals(imaginary.myCreator)) return false; if (!myParent.equals(imaginary.myParent)) return false; return true; }