package com.fasterxml.jackson.dataformat.avro.deser;

import java.io.IOException;

import com.fasterxml.jackson.core.JsonStreamContext;
import com.fasterxml.jackson.core.JsonToken;

We need to use a custom context to be able to carry along Object and array records.
/** * We need to use a custom context to be able to carry along * Object and array records. */
public abstract class AvroReadContext extends JsonStreamContext { protected final AvroReadContext _parent; protected final String _typeId;
Since:2.9
/** * @since 2.9 */
protected Object _currentValue; /* /********************************************************************** /* Instance construction /********************************************************************** */ public AvroReadContext(AvroReadContext parent, String typeId) { super(); _parent = parent; _typeId = typeId; } /* /********************************************************************** /* Traversal /********************************************************************** */ public abstract JsonToken nextToken() throws IOException; public abstract String nextFieldName() throws IOException; public abstract void skipValue(AvroParserImpl parser) throws IOException; public long getRemainingElements() { return -1L; } @Override public Object getCurrentValue() { return _currentValue; } @Override public void setCurrentValue(Object v) { _currentValue = v; } /* /********************************************************************** /* Accessors /********************************************************************** */ @Override public String getCurrentName() { return null; } public abstract JsonToken getCurrentToken(); @Override public final AvroReadContext getParent() { return _parent; } protected abstract void appendDesc(StringBuilder sb); public String getTypeId() { return _typeId; } // !!! TODO: implement from here
Since:2.8.7 public abstract boolean isEnd() { }
/** * @since 2.8.7 public abstract boolean isEnd() { } */
/* /********************************************************************** /* Helper methods /********************************************************************** */ protected void _reportError() { throw new IllegalStateException("Can not read Avro input without specifying Schema"); } /* /********************************************************************** /* Overridden standard methods /********************************************************************** */
Overridden to provide developer writeable "JsonPath" representation of the context.
/** * Overridden to provide developer writeable "JsonPath" representation * of the context. */
@Override public final String toString() { StringBuilder sb = new StringBuilder(64); appendDesc(sb); return sb.toString(); } }