# Interface: com.pnfsoftware.jeb.core.input.IDataProvider

Provider of named binary entries, optionally qualified by an integer identifier.

## Static Field: NOT_IMPLEMENTED
Type: `int`

Constant value: `-10`
Description: Return value used by optional methods that are not implemented.

## Method: getDataBytes
- parameter: `key`, type: `java.lang.String`
- parameter: `id`, type: `int`
- return type: `byte[]`

Description: 
parameter: key: entry name
parameter: id: optional entry id
return: the entire entry data, or `null` if unavailable; implementations are expected         to return at most 2Gb

## Method: getDataBytes
- parameter: `name`, type: `java.lang.String`
- parameter: `id`, type: `int`
- parameter: `buffer`, type: `byte[]`
- parameter: `bufferOffset`, type: `int`
- parameter: `wantedSize`, type: `int`
- return type: `int`

Description: Optional method allowing callers to retrieve a subset of an entry without materializing it entirely. The default implementation returns [#NOT_IMPLEMENTED](#NOT_IMPLEMENTED).
parameter: name: entry name
parameter: id: optional entry id
parameter: buffer: destination buffer
parameter: bufferOffset: offset where the data should be written to in the buffer
parameter: wantedSize: requested size to read
return: the actual read size \(may be less than requested\); a negative number on error

## Method: getDataSize
- parameter: `key`, type: `java.lang.String`
- parameter: `id`, type: `int`
- return type: `long`

Description: 
parameter: key: entry name
parameter: id: optional entry id
return: the size of the entry \(may be more than 4Gb\), or a negative value if unavailable

## Method: openDataStream
- parameter: `name`, type: `java.lang.String`
- parameter: `id`, type: `int`
- return type: `java.io.InputStream`

Description: Optional method. The default implementation returns null.
parameter: name: entry name
parameter: id: optional entry id
return: an input stream for the entry, or `null` if this access mode is unsupported;         the caller must close the stream
throws: on I/O error

