com.hengyi.japp.execution.domain.Operator.java Source code

Java tutorial

Introduction

Here is the source code for com.hengyi.japp.execution.domain.Operator.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hengyi.japp.execution.domain;

import com.google.common.collect.Lists;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.validator.constraints.NotBlank;

/**
 *
 * @author jzb
 */
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
@Table(name = "T_OPERATOR")
@NamedQueries({ @NamedQuery(name = "Operator.find", query = "SELECT o FROM Operator o"),
        @NamedQuery(name = "Operator.count", query = "SELECT COUNT(o) FROM Operator o"),
        @NamedQuery(name = "Operator.queryByName", query = "SELECT o FROM Operator o WHERE o.name LIKE :name") })
public class Operator extends AbstractEntity {

    private static final long serialVersionUID = 1L;
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "T_CUSTOMER_T_OPERATOR")
    private List<Customer> customers;
    @NotBlank
    @Size(max = 50)
    @Column(length = 50)
    private String name;
    private String note;
    @XmlTransient
    @Column(length = 20)
    private String theme;
    private boolean deleteFlag = false;
    // TODO OperatorTag
    @XmlTransient
    @ManyToMany(mappedBy = "operators")
    private List<OperatorTag> operatorTags;

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

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getName() {
        return name;
    }

    public String getTheme() {
        return theme;
    }

    public void setTheme(String theme) {
        this.theme = theme;
    }

    public List<OperatorTag> getOperatorTags() {
        return operatorTags;
    }

    public void setOperatorTags(List<OperatorTag> operatorTags) {
        this.operatorTags = operatorTags;
    }

    public boolean isDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(boolean deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public List<Customer> getCustomers() {
        return customers;
    }

    public void setCustomers(List<Customer> customers) {
        this.customers = customers;
    }

    public void add(Customer customer) {
        if (customers == null) {
            customers = Lists.newArrayList(customer);
        } else if (!customers.contains(customer)) {
            customers.add(customer);
        }
    }

    public void remove(Customer customer) {
        if (customer == null || customers == null || customers.isEmpty()) {
            return;
        }
        customers.remove(customer);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(getName());
        if (!StringUtils.isBlank(getNote())) {
            sb.append("[").append(getNote()).append("]");
        }
        return sb.toString();
    }
}