package com.aperture_software.glados_wiki.entities;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.bson.types.ObjectId;
import org.mongodb.morphia.annotations.Entity;
import org.mongodb.morphia.annotations.Id;
import org.mongodb.morphia.annotations.Reference;
import java.io.Serializable;
import java.util.Date;
/**
* Created with IntelliJ IDEA.
* User: jhyun
* Date: 13. Nov. 15
* Time: 14:09
*/
@Entity
public class PageContent implements Cloneable, Serializable {
private static final long serialVersionUID = -7125379314652015115L;
@Id
private ObjectId id;
@Reference(ignoreMissing = true)
private Page page;
@Reference(ignoreMissing = true)
private PageContent parent;
private String content;
private Date ctime = new Date();
@Reference(ignoreMissing = true)
private User creator = null;
public ObjectId getId() {
return id;
}
public void setId(ObjectId id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getCtime() {
return ctime;
}
public void setCtime(Date ctime) {
this.ctime = ctime;
}
public Page getPage() {
return page;
}
public void setPage(Page page) {
this.page = page;
}
public PageContent getParent() {
return parent;
}
public void setParent(PageContent parent) {
this.parent = parent;
}
public User getCreator() {
return creator;
}
public void setCreator(User creator) {
this.creator = creator;
}
@Override
public boolean equals(Object o) {
return EqualsBuilder.reflectionEquals(this, o);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}