/** * <p>doDeserializeNonArray</p> * * @param reader a {@link com.github.nmorel.gwtjackson.client.stream.JsonReader} object. * @param ctx a {@link com.github.nmorel.gwtjackson.client.JsonDeserializationContext} object. * @param params a {@link com.github.nmorel.gwtjackson.client.JsonDeserializerParameters} object. * @return a T object. */ protected T doDeserializeNonArray( JsonReader reader, JsonDeserializationContext ctx, JsonDeserializerParameters params ) { if ( ctx.isAcceptSingleValueAsArray() ) { return doDeserializeSingleArray( reader, ctx, params ); } else { throw ctx.traceError( "Cannot deserialize an array out of " + reader.peek() + " token", reader ); } }
/** {@inheritDoc} */ @Override protected char[] doDeserializeNonArray( JsonReader reader, JsonDeserializationContext ctx, JsonDeserializerParameters params ) { if ( JsonToken.STRING == reader.peek() ) { return reader.nextString().toCharArray(); } else if ( ctx.isAcceptSingleValueAsArray() ) { return doDeserializeSingleArray( reader, ctx, params ); } else { throw ctx.traceError( "Cannot deserialize a char[] out of " + reader.peek() + " token", reader ); } }
/** {@inheritDoc} */ @Override public Iterable<T> doDeserialize( JsonReader reader, JsonDeserializationContext ctx, JsonDeserializerParameters params ) { if ( JsonToken.BEGIN_ARRAY == reader.peek() ) { Collection<T> result = new ArrayList<T>(); reader.beginArray(); while ( JsonToken.END_ARRAY != reader.peek() ) { result.add( deserializer.deserialize( reader, ctx, params ) ); } reader.endArray(); return result; } else if ( ctx.isAcceptSingleValueAsArray() ) { Collection<T> result = new ArrayList<T>(); result.add( deserializer.deserialize( reader, ctx, params ) ); return result; } else { throw ctx.traceError( "Cannot deserialize a java.lang.Iterable out of " + reader.peek() + " token", reader ); } } }
/** {@inheritDoc} */ @Override protected byte[] doDeserializeNonArray( JsonReader reader, JsonDeserializationContext ctx, JsonDeserializerParameters params ) { if ( JsonToken.STRING == reader.peek() ) { return Base64Utils.fromBase64( reader.nextString() ); } else if ( ctx.isAcceptSingleValueAsArray() ) { return doDeserializeSingleArray( reader, ctx, params ); } else { throw ctx.traceError( "Cannot deserialize a byte[] out of " + reader.peek() + " token", reader ); } }
/** {@inheritDoc} */ @Override public C doDeserialize( JsonReader reader, JsonDeserializationContext ctx, JsonDeserializerParameters params ) { if ( JsonToken.BEGIN_ARRAY == reader.peek() ) { C result = newCollection(); reader.beginArray(); while ( JsonToken.END_ARRAY != reader.peek() ) { T element = deserializer.deserialize( reader, ctx, params ); if ( isNullValueAllowed() || null != element ) { result.add( element ); } } reader.endArray(); return result; } else if ( ctx.isAcceptSingleValueAsArray() ) { C result = newCollection(); result.add( deserializer.deserialize( reader, ctx, params ) ); return result; } else { throw ctx.traceError( "Cannot deserialize a java.util.Collection out of " + reader.peek() + " token", reader ); } }
/** * Build the {@link ImmutableCollection}. It delegates the element addition to an abstract method because the * {@link ImmutableCollection.Builder} is not visible in the emulated class. * * @param reader {@link JsonReader} used to read the JSON input * @param ctx Context for the full deserialization process * @param params Parameters for this deserialization */ protected void buildCollection( JsonReader reader, JsonDeserializationContext ctx, JsonDeserializerParameters params ) { if ( JsonToken.BEGIN_ARRAY == reader.peek() ) { reader.beginArray(); while ( JsonToken.END_ARRAY != reader.peek() ) { T element = deserializer.deserialize( reader, ctx, params ); if ( isNullValueAllowed() || null != element ) { addToCollection( element ); } } reader.endArray(); } else if ( ctx.isAcceptSingleValueAsArray() ) { addToCollection( deserializer.deserialize( reader, ctx, params ) ); } else { throw ctx.traceError( "Cannot deserialize a com.google.common.collect.ImmutableCollection out of " + reader .peek() + " token", reader ); } }