@Override public boolean equals(Object obj) { if (obj instanceof Machine) { Machine that = (Machine) obj; boolean launchtimesEqual = timestampsEqual(this.launchTime, that.launchTime); boolean requesttimesEqual = timestampsEqual(this.requestTime, that.requestTime); boolean metadataEqual = metadataEqual(this.metadata, that.metadata); return Objects.equals(this.id, that.id) // && Objects.equals(this.machineState, that.machineState) // && Objects.equals(this.membershipStatus, that.membershipStatus) // && Objects.equals(this.serviceState, that.serviceState) // && Objects.equals(this.cloudProvider, that.cloudProvider) // && Objects.equals(this.region, that.region) // && Objects.equals(this.machineSize, that.machineSize) // && launchtimesEqual && // requesttimesEqual // && Objects.equals(this.publicIps, that.publicIps) // && Objects.equals(this.privateIps, that.privateIps) // && metadataEqual; } return false; }