@@ -1920,59 +1920,34 @@ public static class TraversalEntityDeserializer implements JsonDeserializer<Trav
19201920 JsonObject obj = json .getAsJsonObject ();
19211921 TraversalEntity <Object , Object > entity = deserializeBaseParameter (obj ,
19221922 new TraversalEntity <Object , Object >());
1923- deserializeDocumentParameter (obj , entity );
1924-
1925- if (obj .has ("result" )) {
1926- JsonObject result = obj .getAsJsonObject ("result" );
1927- TraversalResultEntity <Object , Object > v = null ;
1923+ deserializeBaseParameter (obj , entity );
19281924
1929- if (result .has ("visited" )) {
1930- JsonObject visited = result .getAsJsonObject ("visited" );
1931- v = (TraversalResultEntity <Object , Object >) context .deserialize (visited ,
1932- TraversalResultEntity .class );
1933- } else {
1934- v = new TraversalResultEntity <Object , Object >();
1935- }
1936- entity .setEntity (v );
1937- }
1925+ JsonObject result = getFirstResultAsJsonObject (obj );
1926+ if (result != null ) {
1927+ if (result .getAsJsonObject ().has ("visited" )) {
1928+ JsonObject visited = result .getAsJsonObject ().getAsJsonObject ("visited" );
19381929
1939- return entity ;
1940- }
1941- }
1942-
1943- public static class TraversalResultEntityDeserializer implements JsonDeserializer <TraversalResultEntity <?, ?>> {
1944- @ Override
1945- public TraversalResultEntity <?, ?> deserialize (
1946- JsonElement json ,
1947- Type typeOfT ,
1948- JsonDeserializationContext context ) throws JsonParseException {
1930+ Class <?> vertexClazz = getParameterized ();
1931+ Class <?> edgeClazz = null ;
19491932
1950- if (json .isJsonNull ()) {
1951- return null ;
1952- }
1953-
1954- JsonObject visited = json .getAsJsonObject ();
1955- TraversalResultEntity <Object , Object > entity = new TraversalResultEntity <Object , Object >();
1956-
1957- Class <?> vertexClazz = getParameterized ();
1958- Class <?> edgeClazz = null ;
1959- if (hasNextParameterized ()) {
1960- edgeClazz = nextParameterized ();
1961- }
1933+ if (hasNextParameterized ()) {
1934+ edgeClazz = nextParameterized ();
1935+ }
19621936
1963- if (visited .has ("vertices" )) {
1964- entity .setVertices (getVertices (vertexClazz , context , visited .getAsJsonArray ("vertices" )));
1965- }
1966- if (visited .has ("paths" )) {
1967- entity .setPaths (getPaths (context , visited , vertexClazz , edgeClazz ));
1937+ if (visited .has ("vertices" )) {
1938+ entity .setVertices (getVertices (vertexClazz , context , visited .getAsJsonArray ("vertices" )));
1939+ }
1940+ if (visited .has ("paths" )) {
1941+ entity .setPaths (getPaths (context , visited , vertexClazz , edgeClazz ));
1942+ }
1943+ }
19681944 }
19691945
19701946 return entity ;
19711947 }
19721948 }
19731949
19741950 public static class ShortestPathEntityDeserializer implements JsonDeserializer <ShortestPathEntity <?, ?>> {
1975- @ SuppressWarnings ("unchecked" )
19761951 @ Override
19771952 public ShortestPathEntity <?, ?> deserialize (JsonElement json , Type typeOfT , JsonDeserializationContext context )
19781953 throws JsonParseException {
@@ -1984,62 +1959,60 @@ public static class ShortestPathEntityDeserializer implements JsonDeserializer<S
19841959 JsonObject obj = json .getAsJsonObject ();
19851960 ShortestPathEntity <Object , Object > entity = deserializeBaseParameter (obj ,
19861961 new ShortestPathEntity <Object , Object >());
1987- deserializeDocumentParameter (obj , entity );
1962+ deserializeBaseParameter (obj , entity );
19881963
1989- if (obj .has ("result" )) {
1990- JsonArray result = obj .getAsJsonArray ("result" );
1991- ShortestPathResultEntity <Object , Object > v = null ;
1964+ JsonObject result = getFirstResultAsJsonObject (obj );
1965+ if (result != null ) {
1966+ Class <?> vertexClazz = getParameterized ();
1967+ Class <?> edgeClazz = null ;
19921968
1993- if (result .size () > 0 ) {
1994- v = (ShortestPathResultEntity <Object , Object >) context .deserialize (result .get (0 ),
1995- ShortestPathResultEntity .class );
1969+ if (hasNextParameterized ()) {
1970+ edgeClazz = nextParameterized ();
1971+ }
1972+
1973+ if (result .has ("vertex" )) {
1974+ if (result .get ("vertex" ).isJsonObject ()) {
1975+ entity .setVertex (result .getAsJsonObject ("vertex" ).getAsJsonPrimitive ("_id" ).getAsString ());
1976+ } else if (result .get ("vertex" ).isJsonPrimitive ()) {
1977+ entity .setVertex (result .getAsJsonPrimitive ("vertex" ).getAsString ());
1978+ }
1979+ }
1980+ if (result .has ("distance" )) {
1981+ entity .setDistance (result .get ("distance" ).getAsLong ());
19961982 } else {
1997- v = new ShortestPathResultEntity <Object , Object >();
1983+ entity .setDistance (-1L );
1984+ }
1985+ if (result .has ("startVertex" )) {
1986+ entity .setStartVertex (result .get ("startVertex" ).getAsString ());
1987+ }
1988+ if (result .has ("paths" )) {
1989+ entity .setPaths (getPaths (context , result , vertexClazz , edgeClazz ));
19981990 }
1999- entity .setEntity (v );
1991+ } else {
1992+ entity .setDistance (-1L );
20001993 }
20011994
20021995 return entity ;
20031996 }
20041997 }
20051998
2006- public static class ShortestPathResultEntityDeserializer implements
2007- JsonDeserializer <ShortestPathResultEntity <?, ?>> {
2008- @ Override
2009- public ShortestPathResultEntity <?, ?> deserialize (
2010- JsonElement json ,
2011- Type typeOfT ,
2012- JsonDeserializationContext context ) throws JsonParseException {
2013-
2014- if (json .isJsonNull ()) {
2015- return null ;
2016- }
2017-
2018- JsonObject visited = json .getAsJsonObject ();
2019- ShortestPathResultEntity <Object , Object > entity = new ShortestPathResultEntity <Object , Object >();
2020-
2021- Class <?> vertexClazz = getParameterized ();
2022- Class <?> edgeClazz = null ;
2023- if (hasNextParameterized ()) {
2024- edgeClazz = nextParameterized ();
2025- }
1999+ private static JsonObject getFirstResultAsJsonObject (JsonObject obj ) {
2000+ if (obj .has ("result" )) {
2001+ if (obj .get ("result" ).isJsonArray ()) {
2002+ JsonArray result = obj .getAsJsonArray ("result" );
20262003
2027- if (visited .has ("vertex" )) {
2028- entity .setVertex (getVertex (context , visited .getAsJsonObject ("vertex" ), vertexClazz ));
2029- }
2030- if (visited .has ("distance" )) {
2031- entity .setDistance (visited .get ("distance" ).getAsLong ());
2032- }
2033- if (visited .has ("startVertex" )) {
2034- entity .setStartVertex (visited .get ("startVertex" ).getAsString ());
2035- }
2036- if (visited .has ("paths" )) {
2037- entity .setPaths (getPaths (context , visited , vertexClazz , edgeClazz ));
2004+ if (result .size () > 0 ) {
2005+ JsonElement jsonElement = result .get (0 );
2006+ if (jsonElement .isJsonObject ()) {
2007+ return jsonElement .getAsJsonObject ();
2008+ }
2009+ }
2010+ } else if (obj .get ("result" ).isJsonObject ()) {
2011+ return obj .getAsJsonObject ("result" );
20382012 }
20392013
2040- return entity ;
20412014 }
2042-
2015+ return null ;
20432016 }
20442017
20452018 private static List <PathEntity <Object , Object >> getPaths (
0 commit comments