All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.net.bluesoft.casemanagement.model.CaseCommentsAttribute Maven / Gradle / Ivy

The newest version!
package pl.net.bluesoft.casemanagement.model;

import pl.net.bluesoft.util.lang.cquery.func.F;

import javax.persistence.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import static pl.net.bluesoft.casemanagement.model.Constants.CASES_SCHEMA;
import static pl.net.bluesoft.util.lang.cquery.CQuery.from;

/**
 * Created by pkuciapski on 2014-05-15.
 */
@Entity
@Table(name = "pt_case_comments_attr", schema = CASES_SCHEMA)
public class CaseCommentsAttribute extends CaseAttribute {
    public static final String TABLE = CASES_SCHEMA + "." + CaseCommentsAttribute.class.getAnnotation(Table.class).name();
    @OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER, orphanRemoval = true)
    @JoinColumn(name = "case_comment_id")
    private Set comments = new HashSet();

    public Set getComments() {
        return comments;
    }

    public void setComments(Set comments) {
        this.comments = comments;
    }

    public List getCommentsOrderedByDate(boolean ascending) {
        if (ascending) {
            return from(getComments()).orderBy(BY_CREATE_DATE).toList();
        } else {
            return from(getComments()).orderByDescending(BY_CREATE_DATE).toList();
        }
    }

    private static final F BY_CREATE_DATE = new F() {
        @Override
        public Long invoke(CaseComment x) {
            return x.getCreateDate().getTime();
        }
    };


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy