package org.appfuse.model;

import java.util.Date;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 *  @hibernate.class table="weblog"
 */
public class Weblog extends BaseObject {
    private Long weblogId;
    private String username;
    private String blogTitle;
    private Date dateCreated;

    /**
     * @hibernate.id column="weblog_id" unsaved-value="null" 
     *  generator-class="native"
     */
    public Long getWeblogId() {
        return weblogId;
    }

    public void setWeblogId(Long weblogId) {
        this.weblogId = weblogId;
    }
    
    /**
     * @return Returns the username.
     * 
     * @hibernate.property column="username" not-null="true"
     */
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
    
    /**
     * @return Returns the blogTitle.
     * 
     * @hibernate.property column="blog_title" not-null="true"
     */
    public String getBlogTitle() {
        return blogTitle;
    }

    public void setBlogTitle(String blogTitle) {
        this.blogTitle = blogTitle;
    }

    /**
     * @hibernate.property column="date_created"
     */
    public Date getDateCreated() {
        return dateCreated;
    }

    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }

    public boolean equals(Object object) {
        if (!(object instanceof Weblog)) {
            return false;
        }
        Weblog rhs = (Weblog) object;
        return new EqualsBuilder().append(this.blogTitle, rhs.blogTitle)
                .append(this.username, rhs.username)
                .append(this.dateCreated, rhs.dateCreated).isEquals();
    }

    public int hashCode() {
        return new HashCodeBuilder(-1769938895, -2120812053)
                .append(this.blogTitle).append(this.weblogId).append(
                        this.username).append(this.dateCreated).toHashCode();
    }

    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("weblogId", this.weblogId)
                .append("username", this.username)
                .append("blogTitle",  this.blogTitle)
                .append("dateCreated", this.dateCreated).toString();
    }
}
