/* * 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.schema.impl.model; import java.util.Map; import java.util.TreeMap; import org.hibernate.search.elasticsearch.client.impl.URLEncodedString; import org.hibernate.search.elasticsearch.settings.impl.model.IndexSettings; import com.google.gson.GsonBuilder; /** * An object representing an Elasticsearch index. * * @author Yoann Rodiere */ public class IndexMetadata { private URLEncodedString name; private Map<String, TypeMapping> mappings = new TreeMap<>(); private IndexSettings settings; public URLEncodedString getName() { return name; } public void setName(URLEncodedString name) { this.name = name; } public Map<String, TypeMapping> getMappings() { return mappings; } public void setMappings(Map<String, TypeMapping> mappings) { this.mappings = mappings; } public void putMapping(String name, TypeMapping mapping) { this.mappings.put( name, mapping ); } public void removeMapping(String name) { this.mappings.remove( name ); } public IndexSettings getSettings() { return settings; } public void setSettings(IndexSettings settings) { this.settings = settings; } @Override public String toString() { return new GsonBuilder().setPrettyPrinting().create().toJson( this ); } }