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

All Methods Instance Methods Abstract Methods
`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 Detail

#### 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