@Exported public interface Location extends Mirror, Comparable<Location>
The availability of a line number for a location will depend on the level of debugging information available from the target VM.
Several mirror interfaces have locations. Each such mirror
extends a Locatable
interface.
The source information for a Location is dependent on the
stratum which is used. A stratum is a source code
level within a sequence of translations. For example,
say the baz program is written in the programming language
"Foo" then translated to the language "Bar" and finally
translated into the Java programming language. The
Java programming language stratum is named
"Java"
, let's say the other strata are named
"Foo" and "Bar". A given location (as viewed by the
sourceName()
and lineNumber()
methods)
might be at line 14 of "baz.foo" in the "Foo"
stratum, line 23 of "baz.bar" in the "Bar"
stratum and line 71 of the "Java"
stratum.
Note that while the Java programming language may have
only one source file for a reference type, this restriction
does not apply to other strata - thus each Location should
be consulted to determine its source path.
Queries which do not specify a stratum
(sourceName()
, sourcePath()
and
lineNumber()
) use the VM's default stratum
(VirtualMachine.getDefaultStratum()
).
If the specified stratum (whether explicitly specified
by a method parameter or implicitly as the VM's default)
is null
or is not available in the declaring
type, the declaring type's default stratum is used
(declaringType()
.defaultStratum()
). Note that in the normal case, of code
that originates as Java programming language source, there
will be only one stratum ("Java"
) and it will be
returned as the default. To determine the available strata
use ReferenceType.availableStrata()
.
EventRequestManager
,
StackFrame
,
BreakpointEvent
,
ExceptionEvent
,
Locatable
Modifier and Type | Method and Description |
---|---|
long |
codeIndex()
Gets the code position within this location's method.
|
ReferenceType |
declaringType()
Gets the type to which this Location belongs.
|
boolean |
equals(Object obj)
Compares the specified Object with this Location for equality.
|
int |
hashCode()
Returns the hash code value for this Location.
|
int |
lineNumber()
Gets the line number of this Location.
|
int |
lineNumber(String stratum)
The line number of this Location.
|
Method |
method()
Gets the method containing this Location.
|
String |
sourceName()
Gets an identifing name for the source corresponding to
this location.
|
String |
sourceName(String stratum)
Gets an identifing name for the source corresponding to
this location.
|
String |
sourcePath()
Gets the path to the source corresponding to this
location.
|
String |
sourcePath(String stratum)
Gets the path to the source corresponding to this
location.
|
toString, virtualMachine
compareTo
ReferenceType declaringType()
ClassType
, but executable
locations also may exist within the static initializer of an
InterfaceType
.ReferenceType
containing this Location.long codeIndex()
String sourceName() throws AbsentInformationException
This method is equivalent to
sourceName(vm.getDefaultStratum())
-
see sourceName(String)
for more information.
AbsentInformationException
- if the source name is not
knownString sourceName(String stratum) throws AbsentInformationException
Returned name is for the specified stratum
(see the class comment
for a
description of strata).
The returned string is the unqualified name of the source
file for this Location. For example,
java.lang.Thread
would return
"Thread.java"
.
stratum
- The stratum to retrieve information from
or null
for the declaring type's
default stratum.AbsentInformationException
- if the source name is not
knownString sourcePath() throws AbsentInformationException
This method is equivalent to
sourcePath(vm.getDefaultStratum())
-
see sourcePath(String)
for more information.
AbsentInformationException
- if the source name is not
knownString sourcePath(String stratum) throws AbsentInformationException
Returned path is for the specified stratum
(see the class comment
for a
description of strata).
In the reference implementation, for strata which
do not explicitly specify source path (the Java
programming language stratum never does), the returned
string is the package name of declaringType()
converted to a platform dependent path followed by the
unqualified name of the source file for this Location
(sourceName(stratum)
).
For example, on a
Windows platform, java.lang.Thread
would return
"java\lang\Thread.java"
.
stratum
- The stratum to retrieve information from
or null
for the declaring type's
default stratum.AbsentInformationException
- if the source name is not
knownint lineNumber()
This method is equivalent to
lineNumber(vm.getDefaultStratum())
-
see lineNumber(String)
for more information.
int lineNumber(String stratum)
sourceName(stratum)
.
Returned line number is for the specified stratum
(see the class comment
for a
description of strata).
stratum
- The stratum to retrieve information from
or null
for the declaring type's
default stratum.boolean equals(Object obj)
equals
in class Object
obj
- the reference object with which to compare.Object.hashCode()
,
HashMap
int hashCode()
hashCode
in class Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
Copyright © 1999, 2016, Oracle and/or its affiliates. All rights reserved.