Java 类com.fasterxml.jackson.databind.util.TokenBuffer 实例源码

项目:beadledom    文件:FilteringJacksonJsonProvider.java   
@Override
public void writeTo(
    Object o, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType,
    MultivaluedMap<String, Object> httpHeaders, OutputStream os) throws IOException {
  String fields = uriInfo.getQueryParameters() == null ? null
      : uriInfo.getQueryParameters().getFirst("fields");

  FieldFilter fieldFilter = FieldFilter.create(fields);
  if (!fieldFilter.hasFilters()) {
    super.writeTo(o, type, genericType, annotations, mediaType, httpHeaders, os);
    return;
  }

  JsonGenerator jgen = objectMapper.getFactory().createGenerator(os);
  TokenBuffer tokenBuffer = new TokenBuffer(objectMapper, false);
  objectMapper.writeValue(tokenBuffer, o);
  JsonParser jsonParser = tokenBuffer.asParser();
  fieldFilter.writeJson(jsonParser, jgen);
  jgen.flush();
}
项目:QDrill    文件:DrillValuesRel.java   
private static JsonNode convertToJsonNode(RelDataType rowType, ImmutableList<ImmutableList<RexLiteral>> tuples) throws IOException{
  TokenBuffer out = new TokenBuffer(MAPPER.getFactory().getCodec(), false);
  JsonOutput json = new ExtendedJsonOutput(out);
  json.writeStartArray();
  String[] fields = rowType.getFieldNames().toArray(new String[rowType.getFieldCount()]);

  for(List<RexLiteral> row : tuples){
    json.writeStartObject();
    int i =0;
    for(RexLiteral field : row){
      json.writeFieldName(fields[i]);
      writeLiteral(field, json);
      i++;
    }
    json.writeEndObject();
  }
  json.writeEndArray();
  json.flush();
  return out.asParser().readValueAsTree();
}
项目:dremio-oss    文件:ValuesRel.java   
private static JsonNode convertToJsonNode(RelDataType rowType, ImmutableList<ImmutableList<RexLiteral>> tuples) throws IOException{
  TokenBuffer out = new TokenBuffer(MAPPER.getFactory().getCodec(), false);
  JsonOutput json = new ExtendedJsonOutput(out);
  json.writeStartArray();
  String[] fields = rowType.getFieldNames().toArray(new String[rowType.getFieldCount()]);

  for(List<RexLiteral> row : tuples){
    json.writeStartObject();
    int i =0;
    for(RexLiteral field : row){
      json.writeFieldName(fields[i]);
      writeLiteral(field, json);
      i++;
    }
    json.writeEndObject();
  }
  json.writeEndArray();
  json.flush();
  return out.asParser().readValueAsTree();
}
项目:dremio-oss    文件:ConvertCountToDirectScan.java   
private JsonNode getResultsNode(long count) {
  try{
    TokenBuffer out = new TokenBuffer(MAPPER.getFactory().getCodec(), false);
    JsonOutput json = new ExtendedJsonOutput(out);
    json.writeStartArray();
    json.writeStartObject();
    json.writeFieldName("count");
    json.writeBigInt(count);
    json.writeEndObject();
    json.writeEndArray();
    json.flush();
    return out.asParser().readValueAsTree();
  }catch(IOException ex){
    throw Throwables.propagate(ex);
  }
}
项目:drill    文件:DrillValuesRelBase.java   
private static JsonNode convertToJsonNode(RelDataType rowType, ImmutableList<ImmutableList<RexLiteral>> tuples) throws IOException {
  TokenBuffer out = new TokenBuffer(MAPPER.getFactory().getCodec(), false);
  JsonOutput json = new ExtendedJsonOutput(out);
  json.writeStartArray();
  String[] fields = rowType.getFieldNames().toArray(new String[rowType.getFieldCount()]);

  for (List<RexLiteral> row : tuples) {
    json.writeStartObject();
    int i = 0;
    for (RexLiteral field : row) {
      json.writeFieldName(fields[i]);
      writeLiteral(field, json);
      i++;
    }
    json.writeEndObject();
  }
  json.writeEndArray();
  json.flush();
  return out.asParser().readValueAsTree();
}
项目:nexus-public    文件:JacksonMarshaller.java   
@Override
public <T> T unmarshall(final Object marshalled, final Class<T> type) throws Exception {
  checkNotNull(marshalled);
  checkState(marshalled instanceof Map, "Marshalled data must be a Map; found: %s", marshalled.getClass());

  // FIXME: This allows the top-level object to be created, but if any children objects of this are missing
  // FIXME: ... no-arg CTOR then Jackson will fail to construct them.
  // FIXME: Is there any way to configure the basic instance creation for Jackson?
  Object value = instanceCreator.newInstance(type);

  // performs same basic logic as ObjectMapper.convertValue(Object, Class) helper
  ObjectReader reader = objectMapper.readerForUpdating(value);
  TokenBuffer buff = new TokenBuffer(objectMapper, false);
  objectMapper.writeValue(buff, marshalled);
  reader.readValue(buff.asParser());

  return type.cast(value);
}
项目:esBench    文件:IndexTypeDeserializer.java   
FieldMetadata deserializeMetadata(ObjectMapper mapper, String fieldName, JsonNode fieldJson) throws JsonParseException, IOException {
    TokenBuffer tb = new TokenBuffer(null, false);
    JsonParser jp = fieldJson.traverse(mapper);

    jp.nextToken(); // Get to Start TOKEN
    JsonToken token = jp.getCurrentToken();
    tb.writeStringField(NAME_PROP, fieldName);
    do {
        jp.nextToken();
        token = jp.getCurrentToken();
        tb.copyCurrentStructure(jp);
    } while(token != JsonToken.END_OBJECT);
    jp = tb.asParser(jp);
    jp.nextToken();
    tb.close();
    FieldMetadata diff = mapper.readValue(jp, FieldMetadata.class);
    return defaultMetaProvider.mergeWithDefault(diff);
}
项目:esBench    文件:FieldsParser.java   
private JsonParser enrichJsonObject(ObjectMapper mapper, String fieldName, JsonNode fieldJson) throws IOException {
    TokenBuffer tb = new TokenBuffer(null, false);
    JsonParser jp = fieldJson.traverse(mapper);

    JsonToken token = jp.nextToken(); // Get to Start TOKEN
    tb.writeStringField(NAME_PROP, fieldName);
    do {
        jp.nextToken();
        token = jp.getCurrentToken();
        tb.copyCurrentStructure(jp);
    } while(token != JsonToken.END_OBJECT);
    jp = tb.asParser(jp);
    jp.nextToken();
    tb.close();
    return jp;
}
项目:eHMP    文件:AbstractPOMObject.java   
@SuppressWarnings("unchecked")
protected static <T> T convert(Object fromValue, TypeReference<T> toValueType, Class<?> view) {
    // sanity check for null first:
    if (fromValue == null)
        return null;
    /*
     * Then use TokenBuffer, which is a JsonGenerator: (see [JACKSON-175])
     */
    TokenBuffer buf = new TokenBuffer(MAPPER);
    try {
        MAPPER.writerWithView(view).writeValue(buf, fromValue);
        // and provide as with a JsonParser for contents as well!
        JsonParser jp = buf.asParser();
        Object result = MAPPER.readValue(jp, toValueType);
        jp.close();
        return (T) result;
    } catch (IOException e) { // should not occur, no real i/o...
        throw new IllegalArgumentException(e.getMessage(), e);
    }
}
项目:eHMP    文件:AbstractPOMObject.java   
@SuppressWarnings("unchecked")
protected static <T> T convert(Object fromValue, TypeReference<T> toValueType, Class<?> view) {
    // sanity check for null first:
    if (fromValue == null)
        return null;
    /*
     * Then use TokenBuffer, which is a JsonGenerator: (see [JACKSON-175])
     */
    TokenBuffer buf = new TokenBuffer(MAPPER);
    try {
        MAPPER.writerWithView(view).writeValue(buf, fromValue);
        // and provide as with a JsonParser for contents as well!
        JsonParser jp = buf.asParser();
        Object result = MAPPER.readValue(jp, toValueType);
        jp.close();
        return (T) result;
    } catch (IOException e) { // should not occur, no real i/o...
        throw new IllegalArgumentException(e.getMessage(), e);
    }
}
项目:QuizUpWinner    文件:AsPropertyTypeDeserializer.java   
protected Object _deserializeTypedUsingDefaultImpl(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, TokenBuffer paramTokenBuffer)
{
  JsonDeserializer localJsonDeserializer = _findDefaultImplDeserializer(paramDeserializationContext);
  if (localJsonDeserializer != null)
  {
    if (paramTokenBuffer != null)
    {
      paramTokenBuffer.writeEndObject();
      JsonParser localJsonParser = paramTokenBuffer.asParser(paramJsonParser);
      paramJsonParser = localJsonParser;
      localJsonParser.nextToken();
    }
    return localJsonDeserializer.deserialize(paramJsonParser, paramDeserializationContext);
  }
  Object localObject = TypeDeserializer.deserializeIfNatural(paramJsonParser, paramDeserializationContext, this._baseType);
  if (localObject != null)
    return localObject;
  if (paramJsonParser.getCurrentToken() == JsonToken.START_ARRAY)
    return super.deserializeTypedFromAny(paramJsonParser, paramDeserializationContext);
  throw paramDeserializationContext.wrongTokenException(paramJsonParser, JsonToken.FIELD_NAME, "missing property '" + this._typePropertyName + "' that is to contain type id  (for class " + baseTypeName() + ")");
}
项目:QuizUpWinner    文件:AsArrayTypeDeserializer.java   
private final Object _deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext)
{
  boolean bool = paramJsonParser.isExpectedStartArrayToken();
  String str = _locateTypeId(paramJsonParser, paramDeserializationContext);
  JsonDeserializer localJsonDeserializer = _findDeserializer(paramDeserializationContext, str);
  if ((this._typeIdVisible) && (paramJsonParser.getCurrentToken() == JsonToken.START_OBJECT))
  {
    TokenBuffer localTokenBuffer = new TokenBuffer(null);
    localTokenBuffer.writeStartObject();
    localTokenBuffer.writeFieldName(this._typePropertyName);
    localTokenBuffer.writeString(str);
    JsonParserSequence localJsonParserSequence = JsonParserSequence.createFlattened(localTokenBuffer.asParser(paramJsonParser), paramJsonParser);
    paramJsonParser = localJsonParserSequence;
    localJsonParserSequence.nextToken();
  }
  Object localObject = localJsonDeserializer.deserialize(paramJsonParser, paramDeserializationContext);
  if ((bool) && (paramJsonParser.nextToken() != JsonToken.END_ARRAY))
    throw paramDeserializationContext.wrongTokenException(paramJsonParser, JsonToken.END_ARRAY, "expected closing END_ARRAY after type information and deserialized value");
  return localObject;
}
项目:QuizUpWinner    文件:AsWrapperTypeDeserializer.java   
private final Object _deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext)
{
  if (paramJsonParser.getCurrentToken() != JsonToken.START_OBJECT)
    throw paramDeserializationContext.wrongTokenException(paramJsonParser, JsonToken.START_OBJECT, "need JSON Object to contain As.WRAPPER_OBJECT type information for class " + baseTypeName());
  if (paramJsonParser.nextToken() != JsonToken.FIELD_NAME)
    throw paramDeserializationContext.wrongTokenException(paramJsonParser, JsonToken.FIELD_NAME, "need JSON String that contains type id (for subtype of " + baseTypeName() + ")");
  String str = paramJsonParser.getText();
  JsonDeserializer localJsonDeserializer = _findDeserializer(paramDeserializationContext, str);
  paramJsonParser.nextToken();
  if ((this._typeIdVisible) && (paramJsonParser.getCurrentToken() == JsonToken.START_OBJECT))
  {
    TokenBuffer localTokenBuffer = new TokenBuffer(null);
    localTokenBuffer.writeStartObject();
    localTokenBuffer.writeFieldName(this._typePropertyName);
    localTokenBuffer.writeString(str);
    JsonParserSequence localJsonParserSequence = JsonParserSequence.createFlattened(localTokenBuffer.asParser(paramJsonParser), paramJsonParser);
    paramJsonParser = localJsonParserSequence;
    localJsonParserSequence.nextToken();
  }
  Object localObject = localJsonDeserializer.deserialize(paramJsonParser, paramDeserializationContext);
  if (paramJsonParser.nextToken() != JsonToken.END_OBJECT)
    throw paramDeserializationContext.wrongTokenException(paramJsonParser, JsonToken.END_OBJECT, "expected closing END_OBJECT after type information and deserialized value");
  return localObject;
}
项目:QuizUpWinner    文件:BeanDeserializerBase.java   
protected Object handlePolymorphic(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject, TokenBuffer paramTokenBuffer)
{
  JsonDeserializer localJsonDeserializer = _findSubclassDeserializer(paramDeserializationContext, paramObject, paramTokenBuffer);
  if (localJsonDeserializer != null)
  {
    if (paramTokenBuffer != null)
    {
      paramTokenBuffer.writeEndObject();
      JsonParser localJsonParser = paramTokenBuffer.asParser();
      localJsonParser.nextToken();
      paramObject = localJsonDeserializer.deserialize(localJsonParser, paramDeserializationContext, paramObject);
    }
    if (paramJsonParser != null)
      paramObject = localJsonDeserializer.deserialize(paramJsonParser, paramDeserializationContext, paramObject);
    return paramObject;
  }
  if (paramTokenBuffer != null)
    paramObject = handleUnknownProperties(paramDeserializationContext, paramObject, paramTokenBuffer);
  if (paramJsonParser != null)
    paramObject = deserialize(paramJsonParser, paramDeserializationContext, paramObject);
  return paramObject;
}
项目:jackson-jaxrs-propertyfiltering    文件:PropertyFilteringMessageBodyWriter.java   
private JsonNode valueToTree(ObjectMapper mapper, ObjectWriter writer, Object o) {
  if (o == null) {
    return null;
  }

  TokenBuffer buf = new TokenBuffer(mapper, false);
  JsonNode result;
  try {
    writer.writeValue(buf, o);
    JsonParser jp = buf.asParser();
    result = mapper.readTree(jp);
    jp.close();
  } catch (IOException e) { // should not occur, no real i/o...
    throw new IllegalArgumentException(e.getMessage(), e);
  }

  return result;
}
项目:joyplus-tv    文件:AsArrayTypeDeserializer.java   
/**
 * Method that handles type information wrapper, locates actual
 * subtype deserializer to use, and calls it to do actual
 * deserialization.
 */
private final Object _deserialize(JsonParser jp, DeserializationContext ctxt)
    throws IOException, JsonProcessingException
{
    boolean hadStartArray = jp.isExpectedStartArrayToken();
    String typeId = _locateTypeId(jp, ctxt);
    JsonDeserializer<Object> deser = _findDeserializer(ctxt, typeId);
    // Minor complication: we may need to merge type id in?
    if (_typeIdVisible && jp.getCurrentToken() == JsonToken.START_OBJECT) {
        // but what if there's nowhere to add it in? Error? Or skip? For now, skip.
        TokenBuffer tb = new TokenBuffer(null);
        tb.writeStartObject(); // recreate START_OBJECT
        tb.writeFieldName(_typePropertyName);
        tb.writeString(typeId);
        jp = JsonParserSequence.createFlattened(tb.asParser(jp), jp);
        jp.nextToken();
    }
    Object value = deser.deserialize(jp, ctxt);
    // And then need the closing END_ARRAY
    if (hadStartArray && jp.nextToken() != JsonToken.END_ARRAY) {
        throw ctxt.wrongTokenException(jp, JsonToken.END_ARRAY,
                "expected closing END_ARRAY after type information and deserialized value");
    }
    return value;
}
项目:joyplus-tv    文件:ExternalTypeHandler.java   
protected final Object _deserialize(JsonParser jp, DeserializationContext ctxt,
        int index)
    throws IOException, JsonProcessingException
{
    TokenBuffer merged = new TokenBuffer(jp.getCodec());
    merged.writeStartArray();
    merged.writeString(_typeIds[index]);
    JsonParser p2 = _tokens[index].asParser(jp);
    p2.nextToken();
    merged.copyCurrentStructure(p2);
    merged.writeEndArray();
    // needs to point to START_OBJECT (or whatever first token is)
    p2 = merged.asParser(jp);
    p2.nextToken();
    return _properties[index].getProperty().deserialize(p2, ctxt);
}
项目:joyplus-tv    文件:ExternalTypeHandler.java   
protected final void _deserializeAndSet(JsonParser jp, DeserializationContext ctxt, Object bean, int index)
    throws IOException, JsonProcessingException
{
    /* Ok: time to mix type id, value; and we will actually use "wrapper-array"
     * style to ensure we can handle all kinds of JSON constructs.
     */
    TokenBuffer merged = new TokenBuffer(jp.getCodec());
    merged.writeStartArray();
    merged.writeString(_typeIds[index]);
    JsonParser p2 = _tokens[index].asParser(jp);
    p2.nextToken();
    merged.copyCurrentStructure(p2);
    merged.writeEndArray();
    // needs to point to START_OBJECT (or whatever first token is)
    p2 = merged.asParser(jp);
    p2.nextToken();
    _properties[index].getProperty().deserializeAndSet(p2, ctxt, bean);
}
项目:joyplus-tv    文件:ObjectMapper.java   
/**
 * Reverse of {@link #treeToValue}; given a value (usually bean), will
 * construct equivalent JSON Tree representation. Functionally same
 * as if serializing value into JSON and parsing JSON as tree, but
 * more efficient.
 * 
 * @param <T> Actual node type; usually either basic {@link JsonNode} or
 *  {@link com.fasterxml.jackson.databind.node.ObjectNode}
 * @param fromValue Bean value to convert
 * @return Root node of the resulting JSON tree
 */
@SuppressWarnings("unchecked")
public <T extends JsonNode> T valueToTree(Object fromValue)
    throws IllegalArgumentException
{
    if (fromValue == null) return null;
    TokenBuffer buf = new TokenBuffer(this);
    JsonNode result;
    try {
        writeValue(buf, fromValue);
        JsonParser jp = buf.asParser();
        result = readTree(jp);
        jp.close();
    } catch (IOException e) { // should not occur, no real i/o...
        throw new IllegalArgumentException(e.getMessage(), e);
    }
    return (T) result;
}
项目:GitHub    文件:JsonParserReader.java   
/**
 * Reads current value including objects and array as effiecient token buffer.
 * Use of Jackson's own mechanisms is important to preserve custom elements
 * such as special embedded objects in BSON or other data formats.
 * @return {@link TokenBuffer}
 * @throws IOException if error occured
 */
public final TokenBuffer nextTokenBuffer() throws IOException {
  TokenBuffer buffer = new TokenBuffer(parser);
  // if token is consumed, but undelying parser is still sitting on this token, we move forward
  requirePeek();
  buffer.copyCurrentStructure(parser);
  // when we will return to reading from reader, state will be cleared and nextToken after
  clearPeek();
  return buffer;
}
项目:sam    文件:JsonHelper.java   
public static JsonNode objectToJsonNode(Object node, ObjectMapper objectMapper) {
  try {
    final TokenBuffer buf = new TokenBuffer(objectMapper, false);
    objectMapper.writerWithView(View.Db.class).writeValue(buf, node);

    final JsonParser jp = buf.asParser();
    return objectMapper.readTree(jp);
  } catch (IOException exc) {
    logger.error("Failed to generate object for: " + node, exc);
    return null;
  }
}
项目:fili    文件:SqlResultSetProcessor.java   
/**
 * Processes the results from the sql {@link ResultSet} and writes them out as
 * the json format returned for a {@link com.yahoo.bard.webservice.druid.model.query.GroupByQuery}.
 *
 * @return the equivalent json.
 */
public JsonNode buildDruidResponse() {
    Map<String, Function<String, Number>> resultTypeMapper = getAggregationTypeMapper(druidQuery);

    try (TokenBuffer jsonWriter = new TokenBuffer(objectMapper, true)) {

        jsonWriter.writeStartArray();
        for (String[] row : sqlResults) {
            jsonWriter.writeStartObject();

            DateTime timestamp;
            if (AllGranularity.INSTANCE.equals(druidQuery.getGranularity())) {
                timestamp = druidQuery.getIntervals().get(0).getStart();
            } else {
                timestamp = sqlTimeConverter.getIntervalStart(
                        groupByDimensionsCount,
                        row,
                        druidQuery
                );
            }
            // all druid results are returned in UTC timestamps
            jsonWriter.writeStringField("timestamp", timestamp.toDateTime(DateTimeZone.UTC).toString());

            jsonWriter.writeObjectFieldStart("event");
            processRow(resultTypeMapper, jsonWriter, row);
            jsonWriter.writeEndObject();

            jsonWriter.writeEndObject();
        }
        jsonWriter.writeEndArray();

        return jsonWriter.asParser().readValueAsTree();
    } catch (IOException e) {
        throw new RuntimeException("Failed to write json.", e);
    }

}
项目:nexus-public    文件:HttpClientConfigurationEntityAdapter.java   
@Override
protected void readFields(final ODocument document, final HttpClientConfiguration entity) throws Exception {
  ObjectReader reader = objectMapper.readerForUpdating(entity);
  TokenBuffer buff = new TokenBuffer(objectMapper, false);
  Map<String, Object> fields = document.toMap();

  // strip out id/class synthetics
  fields.remove("@rid");
  fields.remove("@class");

  log.trace("Reading fields: {}", fields);
  objectMapper.writeValue(buff, fields);
  reader.readValue(buff.asParser());
}
项目:therapi-json-rpc    文件:MethodRegistry.java   
private JsonNode invoke(MethodDefinition method, Object[] args) {
    try {
        MethodInvocation invocation = newMethodInvocation(method, args, getInterceptors(method));
        Object result = invocation.proceed();

        TokenBuffer buffer = new TokenBuffer(objectMapper, false);
        objectMapper.writerFor(method.getReturnTypeRef()).writeValue(buffer, result);
        return objectMapper.readTree(buffer.asParser());

    } catch (Throwable e) {
        throw propagate(e);
    }
}
项目:QuizUpWinner    文件:JacksonDeserializers.java   
public static JsonDeserializer<?> find(Class<?> paramClass)
{
  if (paramClass == TokenBuffer.class)
    return TokenBufferDeserializer.instance;
  if (JavaType.class.isAssignableFrom(paramClass))
    return JavaTypeDeserializer.instance;
  return null;
}
项目:QuizUpWinner    文件:ExternalTypeHandler.java   
protected ExternalTypeHandler(ExternalTypeHandler paramExternalTypeHandler)
{
  this._properties = paramExternalTypeHandler._properties;
  this._nameToPropertyIndex = paramExternalTypeHandler._nameToPropertyIndex;
  int i = this._properties.length;
  this._typeIds = new String[i];
  this._tokens = new TokenBuffer[i];
}
项目:QuizUpWinner    文件:ExternalTypeHandler.java   
protected ExternalTypeHandler(ExtTypedProperty[] paramArrayOfExtTypedProperty, HashMap<String, Integer> paramHashMap, String[] paramArrayOfString, TokenBuffer[] paramArrayOfTokenBuffer)
{
  this._properties = paramArrayOfExtTypedProperty;
  this._nameToPropertyIndex = paramHashMap;
  this._typeIds = paramArrayOfString;
  this._tokens = paramArrayOfTokenBuffer;
}
项目:QuizUpWinner    文件:ExternalTypeHandler.java   
protected final Object _deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, int paramInt, String paramString)
{
  TokenBuffer localTokenBuffer = new TokenBuffer(paramJsonParser.getCodec());
  localTokenBuffer.writeStartArray();
  localTokenBuffer.writeString(paramString);
  JsonParser localJsonParser1 = this._tokens[paramInt].asParser(paramJsonParser);
  localJsonParser1.nextToken();
  localTokenBuffer.copyCurrentStructure(localJsonParser1);
  localTokenBuffer.writeEndArray();
  JsonParser localJsonParser2 = localTokenBuffer.asParser(paramJsonParser);
  localJsonParser2.nextToken();
  return this._properties[paramInt].getProperty().deserialize(localJsonParser2, paramDeserializationContext);
}
项目:QuizUpWinner    文件:ExternalTypeHandler.java   
protected final void _deserializeAndSet(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject, int paramInt, String paramString)
{
  TokenBuffer localTokenBuffer = new TokenBuffer(paramJsonParser.getCodec());
  localTokenBuffer.writeStartArray();
  localTokenBuffer.writeString(paramString);
  JsonParser localJsonParser1 = this._tokens[paramInt].asParser(paramJsonParser);
  localJsonParser1.nextToken();
  localTokenBuffer.copyCurrentStructure(localJsonParser1);
  localTokenBuffer.writeEndArray();
  JsonParser localJsonParser2 = localTokenBuffer.asParser(paramJsonParser);
  localJsonParser2.nextToken();
  this._properties[paramInt].getProperty().deserializeAndSet(localJsonParser2, paramDeserializationContext, paramObject);
}
项目:QuizUpWinner    文件:ExternalTypeHandler.java   
public Object complete(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject)
{
  int i = 0;
  int j = this._properties.length;
  while (i < j)
  {
    String str1 = this._typeIds[i];
    String str2 = str1;
    if (str1 == null)
    {
      TokenBuffer localTokenBuffer = this._tokens[i];
      if (localTokenBuffer == null)
        break label263;
      JsonToken localJsonToken = localTokenBuffer.firstToken();
      if ((localJsonToken != null) && (localJsonToken.isScalarValue()))
      {
        JsonParser localJsonParser = localTokenBuffer.asParser(paramJsonParser);
        localJsonParser.nextToken();
        SettableBeanProperty localSettableBeanProperty2 = this._properties[i].getProperty();
        Object localObject = TypeDeserializer.deserializeIfNatural(localJsonParser, paramDeserializationContext, localSettableBeanProperty2.getType());
        if (localObject != null)
        {
          localSettableBeanProperty2.set(paramObject, localObject);
          break label263;
        }
        if (!this._properties[i].hasDefaultType())
          throw paramDeserializationContext.mappingException("Missing external type id property '" + this._properties[i].getTypePropertyName() + "'");
        str2 = this._properties[i].getDefaultTypeId();
      }
    }
    else if (this._tokens[i] == null)
    {
      SettableBeanProperty localSettableBeanProperty1 = this._properties[i].getProperty();
      throw paramDeserializationContext.mappingException("Missing property '" + localSettableBeanProperty1.getName() + "' for external type id '" + this._properties[i].getTypePropertyName());
    }
    _deserializeAndSet(paramJsonParser, paramDeserializationContext, paramObject, i, str2);
    label263: i++;
  }
  return paramObject;
}
项目:QuizUpWinner    文件:ExternalTypeHandler.java   
public boolean handlePropertyValue(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, String paramString, Object paramObject)
{
  Integer localInteger = (Integer)this._nameToPropertyIndex.get(paramString);
  if (localInteger == null)
    return false;
  int i = localInteger.intValue();
  int j;
  if (this._properties[i].hasTypePropertyName(paramString))
  {
    this._typeIds[i] = paramJsonParser.getText();
    paramJsonParser.skipChildren();
    if ((paramObject != null) && (this._tokens[i] != null))
      j = 1;
    else
      j = 0;
  }
  else
  {
    TokenBuffer localTokenBuffer = new TokenBuffer(paramJsonParser.getCodec());
    localTokenBuffer.copyCurrentStructure(paramJsonParser);
    this._tokens[i] = localTokenBuffer;
    if ((paramObject != null) && (this._typeIds[i] != null))
      j = 1;
    else
      j = 0;
  }
  if (j != 0)
  {
    String str = this._typeIds[i];
    this._typeIds[i] = null;
    _deserializeAndSet(paramJsonParser, paramDeserializationContext, paramObject, i, str);
    this._tokens[i] = null;
  }
  return true;
}
项目:QuizUpWinner    文件:UnwrappedPropertyHandler.java   
public Object processUnwrapped(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject, TokenBuffer paramTokenBuffer)
{
  int i = 0;
  int j = this._properties.size();
  while (i < j)
  {
    SettableBeanProperty localSettableBeanProperty = (SettableBeanProperty)this._properties.get(i);
    JsonParser localJsonParser = paramTokenBuffer.asParser();
    localJsonParser.nextToken();
    localSettableBeanProperty.deserializeAndSet(localJsonParser, paramDeserializationContext, paramObject);
    i++;
  }
  return paramObject;
}
项目:QuizUpWinner    文件:BeanDeserializerBase.java   
protected Object handleUnknownProperties(DeserializationContext paramDeserializationContext, Object paramObject, TokenBuffer paramTokenBuffer)
{
  paramTokenBuffer.writeEndObject();
  JsonParser localJsonParser = paramTokenBuffer.asParser();
  while (localJsonParser.nextToken() != JsonToken.END_OBJECT)
  {
    String str = localJsonParser.getCurrentName();
    localJsonParser.nextToken();
    handleUnknownProperty(localJsonParser, paramDeserializationContext, paramObject, str);
  }
  return paramObject;
}
项目:cmonkey    文件:JacksonTupleModule.java   
public static JsonNode valueToTree(ObjectCodec oc, Object fromValue) throws Exception {
    if (fromValue == null) return null;
    TokenBuffer buf = new TokenBuffer(oc);
    oc.writeValue(buf, fromValue);
    JsonParser jp = buf.asParser();
    JsonNode result = oc.readTree(jp);
    jp.close();
    return result;
}
项目:Mason    文件:AbstractBuilder.java   
public V clone() {
  try {
    final ObjectMapper mapper = Mason.getMapper();
    // Similar to MAPPER.treeToValue(MAPPER.valueToTree(this), this.getClass()),
    // but skips tokens -> tree -> tokens. See ObjectMapper#valueToTree(Object).
    TokenBuffer buf = new TokenBuffer(Mason.getMapper(), false);
    mapper.writer().writeValue(buf, this);
    JsonParser json = buf.asParser();
    V result = mapper.reader().withType(this.getClass()).readValue(json);
    json.close();
    return result;
  } catch (IOException e) {
    throw Throwables.propagate(e);
  }
}
项目:joyplus-tv    文件:AsPropertyTypeDeserializer.java   
protected Object _deserializeTypedUsingDefaultImpl(JsonParser jp,
        DeserializationContext ctxt, TokenBuffer tb)
    throws IOException, JsonProcessingException
{
    // As per [JACKSON-614], may have default implementation to use
    if (_defaultImpl != null) { 
        JsonDeserializer<Object> deser = _findDefaultImplDeserializer(ctxt);
        if (tb != null) {
            tb.writeEndObject();
            jp = tb.asParser(jp);
            // must move to point to the first token:
            jp.nextToken();
        }
        return deser.deserialize(jp, ctxt);
    }
    // or, perhaps we just bumped into a "natural" value (boolean/int/double/String)?
    Object result = _deserializeIfNatural(jp, ctxt);
    if (result != null) {
        return result;
    }
    // or, something for which "as-property" won't work, changed into "wrapper-array" type:
    if (jp.getCurrentToken() == JsonToken.START_ARRAY) {
        return super.deserializeTypedFromAny(jp, ctxt);
    }
    throw ctxt.wrongTokenException(jp, JsonToken.FIELD_NAME,
            "missing property '"+_typePropertyName+"' that is to contain type id  (for class "+baseTypeName()+")");
}
项目:joyplus-tv    文件:AsWrapperTypeDeserializer.java   
/**
 * Method that handles type information wrapper, locates actual
 * subtype deserializer to use, and calls it to do actual
 * deserialization.
 */
private final Object _deserialize(JsonParser jp, DeserializationContext ctxt)
    throws IOException, JsonProcessingException
{
    // first, sanity checks
    if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
        throw ctxt.wrongTokenException(jp, JsonToken.START_OBJECT,
                "need JSON Object to contain As.WRAPPER_OBJECT type information for class "+baseTypeName());
    }
    // should always get field name, but just in case...
    if (jp.nextToken() != JsonToken.FIELD_NAME) {
        throw ctxt.wrongTokenException(jp, JsonToken.FIELD_NAME,
                "need JSON String that contains type id (for subtype of "+baseTypeName()+")");
    }
    final String typeId = jp.getText();
    JsonDeserializer<Object> deser = _findDeserializer(ctxt, typeId);
    jp.nextToken();

    // Minor complication: we may need to merge type id in?
    if (_typeIdVisible && jp.getCurrentToken() == JsonToken.START_OBJECT) {
        // but what if there's nowhere to add it in? Error? Or skip? For now, skip.
        TokenBuffer tb = new TokenBuffer(null);
        tb.writeStartObject(); // recreate START_OBJECT
        tb.writeFieldName(_typePropertyName);
        tb.writeString(typeId);
        jp = JsonParserSequence.createFlattened(tb.asParser(jp), jp);
        jp.nextToken();
    }

    Object value = deser.deserialize(jp, ctxt);
    // And then need the closing END_OBJECT
    if (jp.nextToken() != JsonToken.END_OBJECT) {
        throw ctxt.wrongTokenException(jp, JsonToken.END_OBJECT,
                "expected closing END_OBJECT after type information and deserialized value");
    }
    return value;
}
项目:joyplus-tv    文件:BeanDeserializer.java   
/**
 * Method called in cases where we may have polymorphic deserialization
 * case: that is, type of Creator-constructed bean is not the type
 * of deserializer itself. It should be a sub-class or implementation
 * class; either way, we may have more specific deserializer to use
 * for handling it.
 *
 * @param jp (optional) If not null, parser that has more properties to handle
 *   (in addition to buffered properties); if null, all properties are passed
 *   in buffer
 */
protected Object handlePolymorphic(JsonParser jp, DeserializationContext ctxt,                                          
        Object bean, TokenBuffer unknownTokens)
    throws IOException, JsonProcessingException
{  
    // First things first: maybe there is a more specific deserializer available?
    JsonDeserializer<Object> subDeser = _findSubclassDeserializer(ctxt, bean, unknownTokens);
    if (subDeser != null) {
        if (unknownTokens != null) {
            // need to add END_OBJECT marker first
            unknownTokens.writeEndObject();
            JsonParser p2 = unknownTokens.asParser();
            p2.nextToken(); // to get to first data field
            bean = subDeser.deserialize(p2, ctxt, bean);
        }
        // Original parser may also have some leftovers
        if (jp != null) {
            bean = subDeser.deserialize(jp, ctxt, bean);
        }
        return bean;
    }
    // nope; need to use this deserializer. Unknowns we've seen so far?
    if (unknownTokens != null) {
        bean = handleUnknownProperties(ctxt, bean, unknownTokens);
    }
    // and/or things left to process via main parser?
    if (jp != null) {
        bean = deserialize(jp, ctxt, bean);
    }
    return bean;
}
项目:joyplus-tv    文件:JacksonDeserializers.java   
@Override
public TokenBuffer deserialize(JsonParser jp, DeserializationContext ctxt)
    throws IOException, JsonProcessingException
{
    TokenBuffer tb = new TokenBuffer(jp.getCodec());
    // quite simple, given that TokenBuffer is a JsonGenerator:
    tb.copyCurrentStructure(jp);
    return tb;
}
项目:joyplus-tv    文件:BuilderBasedDeserializer.java   
/**
 * Method called in cases where we may have polymorphic deserialization
 * case: that is, type of Creator-constructed bean is not the type
 * of deserializer itself. It should be a sub-class or implementation
 * class; either way, we may have more specific deserializer to use
 * for handling it.
 *
 * @param jp (optional) If not null, parser that has more properties to handle
 *   (in addition to buffered properties); if null, all properties are passed
 *   in buffer
 */
protected Object handlePolymorphic(JsonParser jp, DeserializationContext ctxt,                                          
        Object bean, TokenBuffer unknownTokens)
    throws IOException, JsonProcessingException
{  
    // First things first: maybe there is a more specific deserializer available?
    JsonDeserializer<Object> subDeser = _findSubclassDeserializer(ctxt, bean, unknownTokens);
    if (subDeser != null) {
        if (unknownTokens != null) {
            // need to add END_OBJECT marker first
            unknownTokens.writeEndObject();
            JsonParser p2 = unknownTokens.asParser();
            p2.nextToken(); // to get to first data field
            bean = subDeser.deserialize(p2, ctxt, bean);
        }
        // Original parser may also have some leftovers
        if (jp != null) {
            bean = subDeser.deserialize(jp, ctxt, bean);
        }
        return bean;
    }
    // nope; need to use this deserializer. Unknowns we've seen so far?
    if (unknownTokens != null) {
        bean = handleUnknownProperties(ctxt, bean, unknownTokens);
    }
    // and/or things left to process via main parser?
    if (jp != null) {
        bean = deserialize(jp, ctxt, bean);
    }
    return bean;
}