public void serializeWithType(Geoshape geoshape, JsonGenerator jgen, SerializerProvider serializerProvider, TypeSerializer typeSerializer) throws IOException { jgen.writeStartObject(); if (typeSerializer != null) jgen.writeStringField(GraphSONTokens.VALUETYPE, "janusgraph:Geoshape"); jgen.writeFieldName(GraphSONTokens.VALUEPROP); GraphSONUtil.writeStartObject(geoshape, jgen, typeSerializer); final Map json = mapReader.readValue(toGeoJson(geoshape)); if (geoshape.getType() == Type.POINT) { final double[] coordinates = ((List<Number>) json.get(FIELD_COORDINATES)).stream().mapToDouble(Number::doubleValue).toArray(); GraphSONUtil.writeWithType(FIELD_COORDINATES, coordinates, jgen, serializerProvider, typeSerializer); } else { GraphSONUtil.writeWithType(FIELD_LABEL, json, jgen, serializerProvider, typeSerializer); } GraphSONUtil.writeEndObject(geoshape, jgen, typeSerializer); jgen.writeEndObject(); }
/** * Returns the GeoJSON representation of the shape. * @return */ public String toGeoJson() { return GeoshapeGsonSerializerV2d0.toGeoJson(this); }
private JanusGraphSONModuleV2d0() { super(); addSerializer(RelationIdentifier.class, new RelationIdentifierSerializerV2d0()); addSerializer(Geoshape.class, new Geoshape.GeoshapeGsonSerializerV2d0()); addDeserializer(RelationIdentifier.class, new RelationIdentifierDeserializerV2d0()); addDeserializer(Geoshape.class, new Geoshape.GeoshapeGsonDeserializerV2d0()); addDeserializer(P.class, new JanusGraphPDeserializerV2d0()); }