001/*- 002 * #%L 003 * Smile CDR - CDR 004 * %% 005 * Copyright (C) 2016 - 2026 Smile CDR, Inc. 006 * %% 007 * All rights reserved. 008 * #L% 009 */ 010package ca.cdr.api.model.json; 011 012import ca.uhn.fhir.model.api.IModelJson; 013import com.fasterxml.jackson.annotation.JsonAutoDetect; 014import org.apache.commons.lang3.builder.EqualsBuilder; 015import org.apache.commons.lang3.builder.HashCodeBuilder; 016import org.apache.commons.lang3.builder.ToStringBuilder; 017// TODO: move this to hapi, in the same package as IModelJson 018 019@JsonAutoDetect( 020 creatorVisibility = JsonAutoDetect.Visibility.ANY, 021 fieldVisibility = JsonAutoDetect.Visibility.ANY, 022 getterVisibility = JsonAutoDetect.Visibility.ANY, 023 isGetterVisibility = JsonAutoDetect.Visibility.ANY, 024 setterVisibility = JsonAutoDetect.Visibility.ANY) 025public abstract class AbstractModelJson implements IModelJson { 026 @Override 027 public boolean equals(Object object) { 028 if (this == object) { 029 return true; 030 } 031 if (object == null || getClass() != object.getClass()) { 032 return false; 033 } 034 return EqualsBuilder.reflectionEquals(this, object); 035 } 036 037 @Override 038 public int hashCode() { 039 return HashCodeBuilder.reflectionHashCode(this); 040 } 041 042 @Override 043 public String toString() { 044 return ToStringBuilder.reflectionToString(this); 045 } 046}