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

Definition of a bytes provider, whose key can be augmented by an integer id \(version code\).

## Static Field: NOT_IMPLEMENTED
Type: `int`

Constant value: `-10`

## 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 data for the entry \(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. The default implementation returns [#NOT_IMPLEMENTED](#NOT_IMPLEMENTED).
parameter: key: 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\)

## 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: key: entry name
parameter: id: optional entry id
return: an input stream \(the caller must close the stream when done\)
throws: 

