PublisherSearchView.java 1.88 KB
package org.legrog.web.publisher;

import org.legrog.entities.PublisherVersion;
import org.legrog.entities.SearchingException;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * View behind publisherSearch.xhtml
 */
@Named
@RequestScoped
public class PublisherSearchView implements Serializable {

    transient List<PublisherVersion> publisherVersions = new ArrayList<>();
    String searchString = new String();    /**
     *
     * @return whether search with non-empty string has returned an empty result
     */


    transient PublisherService publisherService;

    /**
     * Uses PublisherService to access search repository
     *
     * @param publisherService injected PublisherService
     */
    @Inject
    public PublisherSearchView(PublisherService publisherService) {
        this.publisherService = publisherService;
    }

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

    /**
     *
     * @return whether search with non-empty string has returned an empty result
     */
    public boolean searchEmpty() {
        return (!searchString.isEmpty()) && publisherVersions.isEmpty();
    }

    /**
     * Searches for publishers containing searchString
     */
    public void search() throws SearchingException {
            this.publisherVersions = publisherService.search(this.searchString);
    }

    public String getSearchString() {
        return searchString;
    }

    public void setSearchString(String searchString) {
        this.searchString = searchString;
    }

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

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

}