/* * $HeadURL$ * $Id$ * Copyright (c) 2006-2012 by Public Library of Science http://plos.org http://ambraproject.org * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.ambraproject.views; import com.google.gson.Gson; import org.ambraproject.models.SavedSearch; import org.ambraproject.models.SavedSearchType; import org.ambraproject.service.search.SearchParameters; import java.util.Date; import java.util.List; /** * A view class for saved searches * * @author Joe Osowski */ public class SavedSearchView { private Long savedSearchId; private SearchParameters searchParameters; private String searchName; private boolean weekly; private boolean monthly; private SavedSearchType searchType; private Date lastWeeklySearchTime; private Date lastMonthlySearchTime; public SavedSearchView(SavedSearch savedSearch) { this.savedSearchId = savedSearch.getID(); this.searchName = savedSearch.getSearchName(); this.searchType = savedSearch.getSearchType(); this.weekly = savedSearch.getWeekly(); this.monthly = savedSearch.getMonthly(); this.lastMonthlySearchTime = savedSearch.getLastMonthlySearchTime(); this.lastWeeklySearchTime = savedSearch.getLastWeeklySearchTime(); Gson gson = new Gson(); this.searchParameters = gson.fromJson(savedSearch.getSearchQuery().getSearchParams(), SearchParameters.class); } public SavedSearchView(Long savedSearchId, String searchName, String searchParams) { this.savedSearchId = savedSearchId; this.searchName = searchName; Gson gson = new Gson(); this.searchParameters = gson.fromJson(searchParams, SearchParameters.class); } /** * get the savedSearchId * @return savedSearchId */ public Long getSavedSearchId() { return savedSearchId; } /** * Return a de-serialized version of the search parameters * * @return the SearchParameters object */ public SearchParameters getSearchParameters() { return searchParameters; } /** * Get the stored search name * * @return searchName */ public String getSearchName() { return searchName; } /** * Is this savedSearch used defined or a journal alert? * * @return the search type */ public SavedSearchType getSearchType() { return searchType; } /** * Is this search meant to run weekly? * * @return boolean */ public boolean getWeekly() { return weekly; } /** * Is this search meant to run monthly? * * @return monthly */ public boolean getMonthly() { return monthly; } public Date getLastWeeklySearchTime() { return lastWeeklySearchTime; } public Date getLastMonthlySearchTime() { return lastMonthlySearchTime; } }