Java tutorial
/* * 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.io.IOException; import java.util.Arrays; import java.util.List; import org.hibernate.search.util.StringHelper; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; /** * @author Yoann Rodiere */ public class ElasticsearchFormatJsonAdapter extends TypeAdapter<List<String>> { private static final String FORMAT_SEPARATOR_REGEX = "\\|\\|"; private static final String FORMAT_SEPARATOR = "||"; @Override public void write(JsonWriter out, List<String> value) throws IOException { if (value == null) { out.nullValue(); return; } String joinedFormats = StringHelper.join(value, FORMAT_SEPARATOR); out.value(joinedFormats); } @Override public List<String> read(JsonReader in) throws IOException { if (in.peek() == JsonToken.NULL) { in.nextNull(); return null; } String joinedFormats = in.nextString(); List<String> formats = Arrays.asList(joinedFormats.split(FORMAT_SEPARATOR_REGEX)); return formats; } }