/**
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
*
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
* graphic logo is a trademark of OpenMRS Inc.
*/
package org.openmrs;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.search.annotations.Field;
/**
* In OpenMRS, we distinguish between data and metadata within our data model. Data (as opposed to
* metadata) generally represent person- or patient-specific data. This provides a default abstract
* implementation of the OpenmrsData interface
*
* @since 1.5
* @see OpenmrsData
*/
@MappedSuperclass
public abstract class BaseOpenmrsData extends BaseOpenmrsObject implements OpenmrsData {
//***** Properties *****
@ManyToOne(optional = false)
@JoinColumn(name = "creator", updatable = false)
protected User creator;
@Column(name = "date_created", nullable = false, updatable = false)
private Date dateCreated;
@ManyToOne
@JoinColumn(name = "changed_by")
private User changedBy;
@Column(name = "date_changed")
private Date dateChanged;
@Column(name = "voided", nullable = false)
@Field
private Boolean voided = Boolean.FALSE;
@Column(name = "date_voided")
private Date dateVoided;
@ManyToOne
@JoinColumn(name = "voided_by")
private User voidedBy;
@Column(name = "void_reason", length = 255)
private String voidReason;
//***** Constructors *****
/**
* Default Constructor
*/
public BaseOpenmrsData() {
}
//***** Property Access *****
/**
* @see org.openmrs.Auditable#getCreator()
*/
@Override
public User getCreator() {
return creator;
}
/**
* @see org.openmrs.Auditable#setCreator(org.openmrs.User)
*/
@Override
public void setCreator(User creator) {
this.creator = creator;
}
/**
* @see org.openmrs.Auditable#getDateCreated()
*/
@Override
public Date getDateCreated() {
return dateCreated;
}
/**
* @see org.openmrs.Auditable#setDateCreated(java.util.Date)
*/
@Override
public void setDateCreated(Date dateCreated) {
this.dateCreated = dateCreated;
}
/**
* @see org.openmrs.Auditable#getChangedBy()
*/
@Override
public User getChangedBy() {
return changedBy;
}
/**
* @see org.openmrs.Auditable#setChangedBy(org.openmrs.User)
*/
@Override
public void setChangedBy(User changedBy) {
this.changedBy = changedBy;
}
/**
* @see org.openmrs.Auditable#getDateChanged()
*/
@Override
public Date getDateChanged() {
return dateChanged;
}
/**
* @see org.openmrs.Auditable#setDateChanged(java.util.Date)
*/
@Override
public void setDateChanged(Date dateChanged) {
this.dateChanged = dateChanged;
}
/**
* @deprecated as of 2.0, use {@link #getVoided()}
*
* @see org.openmrs.Voidable#isVoided()
*/
@Override
@Deprecated
@JsonIgnore
public Boolean isVoided() {
return getVoided();
}
/**
* @see org.openmrs.Voidable#getVoided()
*/
@Override
public Boolean getVoided() {
return voided;
}
/**
* @see org.openmrs.Voidable#setVoided(java.lang.Boolean)
*/
@Override
public void setVoided(Boolean voided) {
this.voided = voided;
}
/**
* @see org.openmrs.Voidable#getDateVoided()
*/
@Override
public Date getDateVoided() {
return dateVoided;
}
/**
* @see org.openmrs.Voidable#setDateVoided(java.util.Date)
*/
@Override
public void setDateVoided(Date dateVoided) {
this.dateVoided = dateVoided;
}
/**
* @see org.openmrs.Voidable#getVoidedBy()
*/
@Override
public User getVoidedBy() {
return voidedBy;
}
/**
* @see org.openmrs.Voidable#setVoidedBy(org.openmrs.User)
*/
@Override
public void setVoidedBy(User voidedBy) {
this.voidedBy = voidedBy;
}
/**
* @see org.openmrs.Voidable#getVoidReason()
*/
@Override
public String getVoidReason() {
return voidReason;
}
/**
* @see org.openmrs.Voidable#setVoidReason(java.lang.String)
*/
@Override
public void setVoidReason(String voidReason) {
this.voidReason = voidReason;
}
}