All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.targomo.client.api.json.DefaultSourceGeometriesMapSerializer Maven / Gradle / Ivy

There is a newer version: 0.39.0
Show newest version
package com.targomo.client.api.json;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.targomo.client.api.geo.DefaultSourceGeometry;

import java.io.IOException;
import java.util.Map;

/**
 * @author gideon
 */
public class DefaultSourceGeometriesMapSerializer extends JsonSerializer {
    @Override
    public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {

        jsonGenerator.writeStartArray(); // [

        for ( Map.Entry entry : ((Map) o).entrySet())  {

            jsonGenerator.writeStartObject(); // {
            jsonGenerator.writeStringField("id", entry.getKey());
            if ( entry.getValue().getTravelType() != null ) jsonGenerator.writeStringField("tm", entry.getValue().getTravelType().toString());
            jsonGenerator.writeStringField("data", entry.getValue().getData());
            jsonGenerator.writeNumberField("crs", entry.getValue().getCrs());
            jsonGenerator.writeBooleanField("routeFromCentroid", entry.getValue().isRouteFromCentroid());
            if( entry.getValue().getProperties() != null){
                jsonGenerator.writeFieldName("aggregationInputParameters");
                jsonGenerator.writeStartObject();
                jsonGenerator.writeNumberField("inputFactor", entry.getValue().getProperties().getInputFactor());
                jsonGenerator.writeNumberField("gravitationAttractionStrength", entry.getValue().getProperties().getGravitationAttractionStrength());
                jsonGenerator.writeBooleanField("gravitationPositiveInfluence", entry.getValue().getProperties().getGravitationPositiveInfluence());
                jsonGenerator.writeEndObject();
            }
            jsonGenerator.writeEndObject(); // }
        }

        jsonGenerator.writeEndArray(); // ]
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy