ListPublisherVersionsView.java 3.06 KB
package org.legrog.web.publisher;

import org.legrog.entities.Publisher;
import org.legrog.entities.PublisherAction;
import org.legrog.entities.PublisherVersion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;

/*
    Vue de listPublisherVersions.xhtml
    Permet de voir l'ensemble des versions des éditeurs.
    Permet de voir l'ensemble des versions d'un éditeur et de valider l'une d'elles.
 */
@Named
@ViewScoped
public class ListPublisherVersionsView implements Serializable {

    transient Logger logger = LoggerFactory.getLogger(getClass());

    transient protected PublisherService publisherService;

    private Integer publisherId;
    private boolean viewAll;
    transient private List<PublisherVersion> publisherVersions;

    @Inject
    public ListPublisherVersionsView(PublisherService publisherService) {
        this.publisherService = publisherService;
    }

     //no args constructor to make it proxyable
    ListPublisherVersionsView() {
    }

    public PublisherAction getLastValidate(Publisher publisher) {
        return publisherService.getLastValidate(publisher);
    }

    // View Action being executed at view loading
    public void setView() {
        logger.trace("setView : publisherId = {}", publisherId);
        publisherVersions = publisherService.getAllPublisherVersions();
        viewAll = (publisherId == null);
        if (!viewAll) {
            logger.trace("setView : !viewAll");
            filterOnID();
        }
    }

    protected void filterOnID() {
        publisherVersions = publisherVersions.stream()
                .filter(version -> version.getPublisher().getPublisherId() == publisherId)
                .collect(Collectors.toList());

    }

    public void validate(PublisherVersion publisherVersion) {
        logger.trace("validate");

        publisherService.validatePublisherVersion(publisherVersion);

        publisherVersions = publisherService.getAllPublisherVersions();
        filterOnID();
    }
//

    public PublisherService getPublisherService() {
        return publisherService;
    }

    public void setPublisherService(PublisherService publisherService) {
        this.publisherService = publisherService;
    }

    public Integer getPublisherId() {
        return publisherId;
    }

    public void setPublisherId(Integer publisherId) {
        this.publisherId = publisherId;
    }

    public boolean isViewAll() {
        return viewAll;
    }

    public void setViewAll(boolean viewAll) {
        this.viewAll = viewAll;
    }

    public List<PublisherVersion> getPublisherVersions() {
        return publisherVersions;
    }

    public void setPublisherVersions(List<PublisherVersion> publisherVersions) {
        this.publisherVersions = publisherVersions;
    }

    @Override
    public String toString() {
        return "publisherId = " + publisherId + ", viewAll = " + viewAll + ", publisherVersions = " + publisherVersions;
    }
}