BannerWebDocBean.java

package sk.iway.iwcm.components.banner.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonProperty.Access;

import sk.iway.iwcm.database.ActiveRecordRepository;
import sk.iway.iwcm.doc.DocDB;
import sk.iway.iwcm.doc.DocDetails;
import sk.iway.iwcm.system.adminlog.EntityListenersType;

@Entity
@Table(name="banner_doc")
@EntityListeners(sk.iway.iwcm.system.adminlog.AuditEntityListener.class)
@EntityListenersType(sk.iway.iwcm.Adminlog.TYPE_BANNER_CREATE)
public class BannerWebDocBean extends ActiveRecordRepository implements Serializable {

	@JsonIgnore
    private static final long serialVersionUID = -1L;

    @Id
	@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "S_banner_gr")
	@Column(name="id")
	private Long id;

    @Column(name="doc_id")
	private Integer docId;

    @ManyToOne
	@JsonBackReference(value="bannerBeanDoc")
	@JoinColumn(name="banner_id")
	private BannerBean bannerBeanDoc;

    public BannerWebDocBean() {}

	public BannerWebDocBean(String path) {
        DocDetails doc = DocDB.getInstance().getCreateDoc(path);
        if (doc != null) docId = doc.getDocId();
    }

    @Override
	public void setId(Long id)
	{
		this.id = id;
	}

	@Override
	public Long getId()
	{
		return id;
	}

    public int getDocId() {
		return docId;
	}

	public void setDocId(int docId) {
		this.docId = docId;
	}

	@JsonIgnore
	public BannerBean getBanner() {
		return bannerBeanDoc;
	}

	public void setBanner(BannerBean bannerBeanDoc) {
		this.bannerBeanDoc = bannerBeanDoc;
	}

	@JsonProperty(access = Access.READ_ONLY)
    public String getFullPath() {
		DocDetails doc = DocDB.getInstance().getBasicDocDetails(docId, false);
		if (doc != null) {
			return doc.getFullPath();
		}
		return "";
	}

	@JsonIgnore
	public String toString() {
		return "BannerDocBean id="+getId()+" path="+getFullPath();
	}
}