/**
* Copyright 2012 Universitat Pompeu Fabra.
*
* 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.0
*
* Unless 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.onexus.website.api.pages.search;
import org.apache.commons.lang3.StringUtils;
import org.onexus.resource.api.ORI;
import org.onexus.resource.api.annotations.ResourceImplicitList;
import org.onexus.website.api.widgets.selection.FiltersWidgetConfig;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SearchType implements Serializable {
private ORI collection;
private String fields;
private String keys;
private String examples;
private String template;
private String placeholder;
private FiltersWidgetConfig filters;
@ResourceImplicitList("link")
private List<SearchLink> links = new ArrayList<SearchLink>();
@ResourceImplicitList("fix-link")
private List<SearchLink> fixLinks = new ArrayList<SearchLink>();
private List<FigureConfig> figures = new ArrayList<FigureConfig>();
public ORI getCollection() {
return collection;
}
public void setCollection(ORI collection) {
this.collection = collection;
}
public String getFields() {
return fields;
}
public void setFields(String fields) {
this.fields = fields;
}
public String getKeys() {
return keys;
}
public void setKeys(String keys) {
this.keys = keys;
}
public String getPlaceholder() {
return placeholder;
}
public void setPlaceholder(String placeholder) {
this.placeholder = placeholder;
}
public String getExamples() {
return examples;
}
public void setExamples(String examples) {
this.examples = examples;
}
public List<SearchLink> getLinks() {
return links;
}
public void setLinks(List<SearchLink> links) {
this.links = links;
}
public List<SearchLink> getFixLinks() {
return fixLinks;
}
public void setFixLinks(List<SearchLink> fixLinks) {
this.fixLinks = fixLinks;
}
public String getTemplate() {
return template;
}
public void setTemplate(String template) {
this.template = template;
}
public FiltersWidgetConfig getFilters() {
return filters;
}
public void setFilters(FiltersWidgetConfig filters) {
this.filters = filters;
}
public List<String> getKeysList() {
if (this.keys == null) {
return getFieldsList();
}
return stringToList(this.keys);
}
public List<String> getFieldsList() {
return stringToList(this.fields);
}
public List<FigureConfig> getFigures() {
return figures;
}
public void setFigures(List<FigureConfig> figures) {
this.figures = figures;
}
private static List<String> stringToList(String input) {
if (StringUtils.isEmpty(input)) {
return Collections.emptyList();
}
String[] values = input.split(",");
List<String> valuesList = new ArrayList<String>(values.length);
for (String value : values) {
valuesList.add(value.trim());
}
return valuesList;
}
}