package com.constellio.app.modules.es.services.mapping; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import com.constellio.model.entities.schemas.ModifiableStructure; import com.constellio.model.entities.schemas.StructureFactory; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; public class ConnectorFieldFactory implements StructureFactory { private GsonBuilder gsonBuilder; private Gson gson; public ConnectorFieldFactory() { gsonBuilder = new GsonBuilder(); gson = gsonBuilder.create(); } @Override public String toString(ModifiableStructure structure) { return gson.toJson(structure); } @Override public ModifiableStructure build(String structure) { ConnectorField connectorField = new ConnectorField(); if (StringUtils.isNotBlank(structure)) { TypeToken<ConnectorField> listTypeToken = new TypeToken<ConnectorField>() { }; connectorField = gson.fromJson(structure, listTypeToken.getType()); connectorField.dirty = false; } return connectorField; } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } @Override public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals(this, obj); } }