Package org.eclipse.mat.query

# Interface IQueryContext

All Known Implementing Classes:
  `ProviderContextImpl`, `QueryContextImpl`, `SnapshotQueryContext`

public interface IQueryContext
The context for a query. Hides the snapshot implementation, and is not tied to the snapshot API.

No Implement:

## Method Summary

Modifier and Type
Method
Description
`boolean`
`available(Class<?> type, Argument.Advice advice)`
Is this type of data available from the context?
`boolean`
`converts(Class<?> type, Argument.Advice advice)`
Does the context have a converter for data of this type?
`String`
`convertToString(Class<?> type, Argument.Advice advice, Object value)`
Convert the value to a string.
`Object`
`convertToValue(Class<?> type, Argument.Advice advice, String value)`
Convert the String to the value based on the type and advice.
`Object`
`get(Class<?> type, Argument.Advice advice)`
Get this type of data from the context.
`ContextDerivedData`
`getContextDerivedData()`
For example, retained size derived data.
`String`
`getPrefix()`
The prefix for files generated from snapshot
`File`
`getPrimaryFile()`
The main file for the snapshot
`String`
`mapToExternalIdentifier(int objectId)`
Map an id to a readable form.
`int`
`mapToObjectId(String externalIdentifier)`
Map readable form to internal id.
`Object`
`parse(Class<?> type, Argument.Advice advice, String[] args, ParsePosition pos)`
Consume the special data.
`boolean`
`parses(Class<?> type, Argument.Advice advice)`
Is special parsing required to get an object of the required type?

## Method Details

### getPrimaryFile

File getPrimaryFile()
The main file for the snapshot

Returns:
  the dump

### getPrefix

String getPrefix()
The prefix for files generated from snapshot

Returns:
  the prefix
Since:
  1.3

### available

boolean available(Class<?> type, Argument.Advice advice)
Is this type of data available from the context?

Parameters:
  `type` - the type the data should be converted to
  `advice` - advice such as from the query as to how the value should be converted.
Returns:
  true if available.

### get

Object get(Class<?> type, Argument.Advice advice)
Get this type of data from the context.

Parameters:
  `type` - the type the data should be converted to
  `advice` - advice such as from the query as to how the value should be converted.
Returns:
  the object of the right type

### mapToExternalIdentifier

String mapToExternalIdentifier(int objectId) throws SnapshotException
Map an id to a readable form. For example the hex-address with 0x as a prefix. Reverse of `mapToObjectId(java.lang.String)`

Parameters:
  `objectId` - The 0-based internal identifier used within MAT.
Returns:
  readable external version
Throws:
  `SnapshotException` - if the objectId does not match to a valid object.
See Also:
  - `mapToObjectId(java.lang.String)`

### mapToObjectId

int mapToObjectId(String externalIdentifier) throws SnapshotException
Map readable form to internal id. Reverse of `mapToExternalIdentifier(int)`.

Parameters:
  `externalIdentifier` - as provided by `mapToExternalIdentifier(int)`.
Returns:
  the object id
Throws:
  `SnapshotException` - if the external identifier does not match a known object in the snapshot.

### converts

boolean converts(Class<?> type, Argument.Advice advice)
Does the context have a converter for data of this type?

Parameters:
  `type` - The Java type of an argument to be supplied with data from this context.
  `advice` - Further details about the argument to be supplied with data.
Returns:
  true if available and convertible

### convertToString

String convertToString(Class<?> type, Argument.Advice advice, Object value) throws SnapshotException
Convert the value to a string. For example the converter might be String.valueOf(Integer)

Parameters:
  `type` - The Java type of the argument.
  `advice` - Further details about the argument.
  `value` - The value of the argument held in the context.
Returns:
  the value converted to a String
Throws:
  `SnapshotException` - If there is a problem with the conversion such as the value is not a valid object ID.

### convertToValue

Object convertToValue(Class<?> type, Argument.Advice advice, String value) throws SnapshotException
Convert the String to the value based on the type and advice.

Parameters:
  `type` - The Java type of the argument
  `advice` - Further details about the argument.
  `value` - The readable string value
Returns:
  the String converted to a value suitable to be stored in the argument.
Throws:
  `SnapshotException` - if there is a problem with the conversion, such as an unknown object address.

### parses

boolean parses(Class<?> type, Argument.Advice advice)
Is special parsing required to get an object of the required type?

Parameters:
  `type` - The Java type of the argument.
  `advice` - Further details about the argument.
Returns:
  true if special parsing is needed, for example for a heap object or class object in the heap.

### parse

Object parse(Class<?> type, Argument.Advice advice, String[] args, ParsePosition pos) throws SnapshotException
Consume the special data. For example using the ArgumentParser for data from a query wizard.

Parameters:
  `type` - The Java type of the destination argument.
  `advice` - Further details about the argument.
  `args` - The source to be converted
  `pos` - Used to index through the array of Strings.
Returns:
  the result of parsing the data suitable given the type and advice
Throws:
  `SnapshotException` - If there is a problem in the parsing.

### getContextDerivedData

ContextDerivedData getContextDerivedData()
For example, retained size derived data.

Returns:
  the derived data