Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
DiSL
DiSL
Commits
53650b5c
Commit
53650b5c
authored
May 26, 2014
by
Lubomir Bulej
Browse files
Marker: fixed a typo in the name of the BytecodeMarker class linked from the documentation.
parent
11504037
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/ch/usi/dag/disl/marker/Marker.java
View file @
53650b5c
package
ch.usi.dag.disl.marker
;
import
java.util.List
;
import
org.objectweb.asm.tree.ClassNode
;
import
org.objectweb.asm.tree.MethodNode
;
import
ch.usi.dag.disl.exception.MarkerException
;
import
ch.usi.dag.disl.snippet.Shadow
;
import
ch.usi.dag.disl.snippet.Snippet
;
/**
* <p>
* Basic interface that every marker has to implement. Marker should return list
* of shadows that are marks for particular method.
*
* <p>
* There is a list of already prepared markers that select various regions in
* scoped methods.
* <ul>
* <li>
* {@link ch.usi.dag.disl.marker.AfterInitBodyMarker
* AfterInitBodyMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.BasicBlockMarker
* BasicBlockMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.BodyMarker
* BodyMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.BytcodeMarker
* BytcodeMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.EmptyMarker
* EmptyMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.ExceptionHandlerMarker
* ExceptionHandlerMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.InsnNodeMarker
* InsnNodeMarker - experimental}</li>
* <li>
* {@link ch.usi.dag.disl.marker.NewObjMarker
* NewObjMarker - experimental}</li>
* <li>
* {@link ch.usi.dag.disl.marker.PreciseBasicBlockMarker
* PreciseBasicBlockMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.StrictBytecodeMarker
* StrictBytecodeMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.TryClauseMarker
* TryClauseMarker}</li>
* </ul>
*
* <p>
* It's also possible to implement and use custom markers. This interface might
* be implemented directly or following abstract markers might be used.
* <ul>
* <li>
* {@link ch.usi.dag.disl.marker.AbstractMarker
* AbstractMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.AbstractDWRMarker
* AbstractDWRMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.AbstractInsnMarker
* AbstractInsnMarker}</li>
* </ul>
*/
public
interface
Marker
{
/**
* <p>
* Returns shadows for the marked method.
*
* @param classNode
* represents class being marked
* @param methodNode
* represents method being marked
* @param snippet
* snippet defining the marker
* @return
* list of shadows for marked method
*/
List
<
Shadow
>
mark
(
ClassNode
classNode
,
MethodNode
methodNode
,
Snippet
snippet
)
throws
MarkerException
;
}
package
ch.usi.dag.disl.marker
;
import
java.util.List
;
import
org.objectweb.asm.tree.ClassNode
;
import
org.objectweb.asm.tree.MethodNode
;
import
ch.usi.dag.disl.exception.MarkerException
;
import
ch.usi.dag.disl.snippet.Shadow
;
import
ch.usi.dag.disl.snippet.Snippet
;
/**
* <p>
* Basic interface that every marker has to implement. Marker should return list
* of shadows that are marks for particular method.
*
* <p>
* There is a list of already prepared markers that select various regions in
* scoped methods.
* <ul>
* <li>
* {@link ch.usi.dag.disl.marker.AfterInitBodyMarker
* AfterInitBodyMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.BasicBlockMarker
* BasicBlockMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.BodyMarker
* BodyMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.Byt
e
codeMarker
* BytcodeMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.EmptyMarker
* EmptyMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.ExceptionHandlerMarker
* ExceptionHandlerMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.InsnNodeMarker
* InsnNodeMarker - experimental}</li>
* <li>
* {@link ch.usi.dag.disl.marker.NewObjMarker
* NewObjMarker - experimental}</li>
* <li>
* {@link ch.usi.dag.disl.marker.PreciseBasicBlockMarker
* PreciseBasicBlockMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.StrictBytecodeMarker
* StrictBytecodeMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.TryClauseMarker
* TryClauseMarker}</li>
* </ul>
*
* <p>
* It's also possible to implement and use custom markers. This interface might
* be implemented directly or following abstract markers might be used.
* <ul>
* <li>
* {@link ch.usi.dag.disl.marker.AbstractMarker
* AbstractMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.AbstractDWRMarker
* AbstractDWRMarker}</li>
* <li>
* {@link ch.usi.dag.disl.marker.AbstractInsnMarker
* AbstractInsnMarker}</li>
* </ul>
*/
public
interface
Marker
{
/**
* <p>
* Returns shadows for the marked method.
*
* @param classNode
* represents class being marked
* @param methodNode
* represents method being marked
* @param snippet
* snippet defining the marker
* @return
* list of shadows for marked method
*/
List
<
Shadow
>
mark
(
ClassNode
classNode
,
MethodNode
methodNode
,
Snippet
snippet
)
throws
MarkerException
;
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment