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; } }