Class SnapshotQueryContext
- java.lang.Object
-
- org.eclipse.mat.query.registry.QueryContextImpl
-
- org.eclipse.mat.internal.snapshot.SnapshotQueryContext
-
- All Implemented Interfaces:
IQueryContext
public class SnapshotQueryContext extends QueryContextImpl
-
-
Constructor Summary
Constructors Constructor Description SnapshotQueryContext(ISnapshot snapshot)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
available(java.lang.Class<?> type, Argument.Advice advice)
Is this type of data available from the context?boolean
converts(java.lang.Class<?> type, Argument.Advice advice)
Does the context have a converter for data of this type?java.lang.String
convertToString(java.lang.Class<?> type, Argument.Advice advice, java.lang.Object value)
Convert the value to a string.java.lang.Object
convertToValue(java.lang.Class<?> type, Argument.Advice advice, java.lang.String value)
Convert the String to the value based on the type and advice.java.lang.Object
get(java.lang.Class<?> type, Argument.Advice advice)
Get this type of data from the context.ContextDerivedData
getContextDerivedData()
For example, retained size derived data.java.lang.String
getPrefix()
The prefix for files generated from snapshotjava.io.File
getPrimaryFile()
The main file for the snapshotjava.lang.String
mapToExternalIdentifier(int objectId)
Map an id to a readable form.int
mapToObjectId(java.lang.String externalIdentifier)
Map readable form to internal id.java.lang.Object
parse(java.lang.Class<?> type, Argument.Advice advice, java.lang.String[] args, java.text.ParsePosition pos)
Consume the special data.boolean
parses(java.lang.Class<?> type, Argument.Advice advice)
Is special parsing required to get an object of the required type?
-
-
-
Constructor Detail
-
SnapshotQueryContext
public SnapshotQueryContext(ISnapshot snapshot)
-
-
Method Detail
-
getPrimaryFile
public java.io.File getPrimaryFile()
Description copied from interface:IQueryContext
The main file for the snapshot- Returns:
- the dump
-
getPrefix
public java.lang.String getPrefix()
Description copied from interface:IQueryContext
The prefix for files generated from snapshot- Returns:
- the prefix
-
mapToExternalIdentifier
public java.lang.String mapToExternalIdentifier(int objectId) throws SnapshotException
Description copied from interface:IQueryContext
Map an id to a readable form. For example the hex-address with 0x as a prefix. Reverse ofIQueryContext.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:
IQueryContext.mapToObjectId(java.lang.String)
-
mapToObjectId
public int mapToObjectId(java.lang.String externalIdentifier) throws SnapshotException
Description copied from interface:IQueryContext
Map readable form to internal id. Reverse ofIQueryContext.mapToExternalIdentifier(int)
.- Parameters:
externalIdentifier
- as provided byIQueryContext.mapToExternalIdentifier(int)
.- Returns:
- the object id
- Throws:
SnapshotException
- if the external identifier does not match a known object in the snapshot.
-
available
public boolean available(java.lang.Class<?> type, Argument.Advice advice)
Description copied from interface:IQueryContext
Is this type of data available from the context?- Specified by:
available
in interfaceIQueryContext
- Overrides:
available
in classQueryContextImpl
- Parameters:
type
- the type the data should be converted toadvice
- advice such as from the query as to how the value should be converted.- Returns:
- true if available.
-
get
public java.lang.Object get(java.lang.Class<?> type, Argument.Advice advice)
Description copied from interface:IQueryContext
Get this type of data from the context.- Specified by:
get
in interfaceIQueryContext
- Overrides:
get
in classQueryContextImpl
- Parameters:
type
- the type the data should be converted toadvice
- advice such as from the query as to how the value should be converted.- Returns:
- the object of the right type
-
converts
public boolean converts(java.lang.Class<?> type, Argument.Advice advice)
Description copied from interface:IQueryContext
Does the context have a converter for data of this type?- Specified by:
converts
in interfaceIQueryContext
- Overrides:
converts
in classQueryContextImpl
- 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
public java.lang.String convertToString(java.lang.Class<?> type, Argument.Advice advice, java.lang.Object value) throws SnapshotException
Description copied from interface:IQueryContext
Convert the value to a string. For example the converter might be String.valueOf(Integer)- Specified by:
convertToString
in interfaceIQueryContext
- Overrides:
convertToString
in classQueryContextImpl
- 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
public java.lang.Object convertToValue(java.lang.Class<?> type, Argument.Advice advice, java.lang.String value) throws SnapshotException
Description copied from interface:IQueryContext
Convert the String to the value based on the type and advice.- Specified by:
convertToValue
in interfaceIQueryContext
- Overrides:
convertToValue
in classQueryContextImpl
- Parameters:
type
- The Java type of the argumentadvice
- 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
public boolean parses(java.lang.Class<?> type, Argument.Advice advice)
Description copied from interface:IQueryContext
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
public java.lang.Object parse(java.lang.Class<?> type, Argument.Advice advice, java.lang.String[] args, java.text.ParsePosition pos) throws SnapshotException
Description copied from interface:IQueryContext
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 convertedpos
- 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
public ContextDerivedData getContextDerivedData()
Description copied from interface:IQueryContext
For example, retained size derived data.- Returns:
- the derived data
-
-