/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.elasticsearch.settings.impl.model; import java.util.ArrayList; import java.util.List; import com.google.gson.GsonBuilder; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; /** * A definition of an Elasticsearch analyzer, to be included in index settings. * * @author Yoann Rodiere */ @JsonAdapter(AnalyzerDefinitionJsonAdapterFactory.class) public class AnalyzerDefinition extends AnalysisDefinition { private String tokenizer; @SerializedName("filter") private List<String> tokenFilters; @SerializedName("char_filter") private List<String> charFilters; public String getTokenizer() { return tokenizer; } public void setTokenizer(String tokenizer) { this.tokenizer = tokenizer; } public List<String> getTokenFilters() { return tokenFilters; } public void setTokenFilters(List<String> tokenFilters) { this.tokenFilters = tokenFilters; } public void addTokenFilter(String tokenFilter) { getInitializedTokenFilters().add( tokenFilter ); } private List<String> getInitializedTokenFilters() { if ( tokenFilters == null ) { tokenFilters = new ArrayList<>(); } return tokenFilters; } public List<String> getCharFilters() { return charFilters; } public void setCharFilters(List<String> charFilters) { this.charFilters = charFilters; } public void addCharFilter(String charFilter) { getInitializedCharFilters().add( charFilter ); } private List<String> getInitializedCharFilters() { if ( charFilters == null ) { charFilters = new ArrayList<>(); } return charFilters; } @Override public String toString() { return new GsonBuilder().setPrettyPrinting().create().toJson( this ); } }