CardTemplate.java 2.7 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fi.insomnia.bortal.model;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.eclipse.persistence.annotations.OptimisticLocking;
import org.eclipse.persistence.annotations.OptimisticLockingType;

/**
 * ID-card templates for the event.
 */
@Entity
@Table(name = "card_templates")
@NamedQueries({
        @NamedQuery(name = "CardTemplate.findAll", query = "SELECT c FROM CardTemplate c"),
        @NamedQuery(name = "CardTemplate.findByName", query = "SELECT c FROM CardTemplate c WHERE c.name = :name") })
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class CardTemplate extends GenericEntity {

    private static final long serialVersionUID = -5754760238181167610L;

    @Lob
    @Column(name = "template_image")
    private byte[] image;

    @Column(name = "template_name", nullable = false)
    private String name;

    @Column(name = "power", nullable = false)
    private int power = 0;

    @OneToMany(mappedBy = "cardTemplate")
    private List<Role> roles;

    @OneToMany(mappedBy = "template")
    private List<PrintedCard> cards;

    @ManyToOne
    @JoinColumn(nullable = false, name = "event_id", referencedColumnName = LanEvent.ID_COLUMN)
    private LanEvent event;

    public CardTemplate() {
        super();
    }

    public CardTemplate(LanEvent event) {
        super();
        this.setEvent(event);
    }

    public CardTemplate(LanEvent event, String templateName) {
        this(event);
        this.name = templateName;
    }

    public byte[] getImage() {
        return image;
    }

    public void setImage(byte[] templateImage) {
        this.image = templateImage;
    }

    public String getName() {
        return name;
    }

    public void setName(String templateName) {
        this.name = templateName;
    }

    public List<Role> getRoles() {
        return roles;
    }

    public void setRoles(List<Role> roleList) {
        this.roles = roleList;
    }

    public void setCards(List<PrintedCard> cards) {
        this.cards = cards;
    }

    public List<PrintedCard> getCards() {
        return cards;
    }

    public LanEvent getEvent() {
        return event;
    }

    public void setPower(int power) {
        this.power = power;
    }

    public int getPower() {
        return power;
    }

    public void setEvent(LanEvent event) {
        this.event = event;
    }

}