Package org.apache.solr.common.util

# Interface DataEntry

All Known Implementing Classes:
  `FastJavaBinDecoder.EntryImpl`

public interface DataEntry
This represents a data entry in the payload/stream. There are multiple ways to consume the data entry: 1) listen to it, if it's a container object, and get callbacks for each sub-entry 2) read as an object using the {`val()`} method. Please note that it creates objects and expect more memory usage 3) read the corresponding primitive value Do not keep a reference of this Object beyond the scope where it is called. Read the relevant data out.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`DataEntry.EntryListener`
`static interface`
`DataEntry.FastDecoder`
`static enum`
`DataEntry.Type`
The types are a superset of json

## Method Summary

Modifier and Type
Method
Description
`boolean`
`boolVal()`
`Object`
`ctx()`
This is the object shared in the parent container in the {`listenContainer(Object, EntryListener)`} method
`int`
`depth()`
Depth of this Object.
`double`
`doubleVal()`
`float`
`floatVal()`
`long`
`index()`
The index of this entry in the container
`int`
`intVal()`
`boolean`
`isKeyValEntry()`
If this object is a key value entry.
`int`
`length()`
If it is a non-primitive type and size is known in advance
`void`
`listenContainer(Object ctx, DataEntry.EntryListener listener)`
Register a listener to get callbacks for all entries
`long`
`longVal()`
`Object`
`metadata()`
Some Objects may have metadata.
`CharSequence`
`name()`
The name, if this is a map entry , else it returns a null
`DataEntry`
`parent()`
If this is a child of another container object this returns a non-null value
`default String`
`strValue()`
`DataEntry.Type`
`type()`
The data type
`Object`
`val()`
The object value

## Method Details

### type

DataEntry.Type type()
The data type

### index

long index()
The index of this entry in the container

### intVal

int intVal()

### longVal

long longVal()

### floatVal

float floatVal()

### doubleVal

double doubleVal()

### boolVal

boolean boolVal()

### strValue

default String strValue()

### val

Object val()
The object value

### listenContainer

void listenContainer(Object ctx, DataEntry.EntryListener listener)
Register a listener to get callbacks for all entries

Parameters:
  `ctx` - This is any object that should be shared with the child entry callbacks
  `listener` - The listener that handles each entry in this container

### metadata

Object metadata()
Some Objects may have metadata. usually there is none

### depth

int depth()
Depth of this Object. The root most object has a depth of 1

### parent

DataEntry parent()
If this is a child of another container object this returns a non-null value

Returns:
  the parent container object

### ctx

Object ctx()
This is the object shared in the parent container in the {`listenContainer(Object, EntryListener)`} method

### length

int length()
If it is a non-primitive type and size is known in advance

if it's a map/list, it's the no:of items in this container

if it's a {`CharSequence`} or byte[] , it's the no:of bytes in the stream

Returns:
  a number greater than or equal to zero if the size is known, -1 if unknown

### isKeyValEntry

boolean isKeyValEntry()
If this object is a key value entry. key value entries have name

### name

CharSequence name()
The name, if this is a map entry , else it returns a null