Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 


Eclipse JDT
Release 3.5

org.eclipse.jdt.core.eval
Interface ICodeSnippetRequestor


public interface ICodeSnippetRequestor

A code snippet requestor implements a callback interface for installing the class files for a code snippet on the target and running it. In addition, it receives compilation problems detected during code snippet compilation.

Clients may implement this interface to provide a bridge a running Java VM.

See Also:
IEvaluationContext.evaluateCodeSnippet(String, ICodeSnippetRequestor, org.eclipse.core.runtime.IProgressMonitor), IEvaluationContext.evaluateCodeSnippet(String, String[], String[], int[], org.eclipse.jdt.core.IType, boolean, boolean, ICodeSnippetRequestor, org.eclipse.core.runtime.IProgressMonitor)

Field Summary
static int CODE_SNIPPET
          Indicates a compilation problem related to a code snippet.
static  String DELEGATE_THIS
          The name of the field that represent 'this' in a snippet class instance.
static int IMPORT
          Indicates a compilation problem related to an import declaration.
static int INTERNAL
          Indicates an internal problem.
static  String LOCAL_VAR_PREFIX
          The prefix of fields that represent the local variables in a snippet class.
static int PACKAGE
          Indicates a compilation problem related to a package declaration.
static  String RESULT_TYPE_FIELD
          The field of type java.lang.Class on the code snippet instance that contains the type of the returned value.
static  String RESULT_VALUE_FIELD
          The name of the field (of type java.lang.Object) on the code snippet instance that contains the returned value.
static  String RUN_METHOD
          The name of the instance method in the snippet class that runs the code snippet.
static int VARIABLE
          Indicates a compilation problem related to a global variable.
 
Method Summary
 boolean acceptClassFiles (byte[][] classFileBytes, String[][] classFileCompoundNames, String codeSnippetClassName)
          Sends the given class files to the target and loads them.
 void acceptProblem ( IMarker problemMarker, String fragmentSource, int fragmentKind)
          Notifies of an evaluation problem.
 

Field Detail

LOCAL_VAR_PREFIX

static final 
String LOCAL_VAR_PREFIX
The prefix of fields that represent the local variables in a snippet class.


DELEGATE_THIS

static final 
String DELEGATE_THIS
The name of the field that represent 'this' in a snippet class instance.


RUN_METHOD

static final 
String RUN_METHOD
The name of the instance method in the snippet class that runs the code snippet.

See Also:
Constant Field Values

RESULT_VALUE_FIELD

static final 
String RESULT_VALUE_FIELD
The name of the field (of type java.lang.Object) on the code snippet instance that contains the returned value.

See Also:
Constant Field Values

RESULT_TYPE_FIELD

static final 
String RESULT_TYPE_FIELD
The field of type java.lang.Class on the code snippet instance that contains the type of the returned value. The name of the field (of type java.lang.Class) on the code snippet instance that contains the runtime type of the returned value.

See Also:
Constant Field Values

VARIABLE

static final int VARIABLE
Indicates a compilation problem related to a global variable.

Note: if the problem is on the type of the variable, the marker source line number is -1; if the name of the variable, line number is 0; otherwise, the marker source line number is relative to the initializer code.

See Also:
acceptProblem(IMarker, String, int), Constant Field Values

CODE_SNIPPET

static final int CODE_SNIPPET
Indicates a compilation problem related to a code snippet.

See Also:
acceptProblem(IMarker, String, int), Constant Field Values

IMPORT

static final int IMPORT
Indicates a compilation problem related to an import declaration.

See Also:
acceptProblem(IMarker, String, int), Constant Field Values

PACKAGE

static final int PACKAGE
Indicates a compilation problem related to a package declaration.

See Also:
acceptProblem(IMarker, String, int), Constant Field Values

INTERNAL

static final int INTERNAL
Indicates an internal problem.

See Also:
acceptProblem(IMarker, String, int), Constant Field Values
Method Detail

acceptClassFiles

boolean acceptClassFiles(byte[][] classFileBytes,
                         
String[][] classFileCompoundNames,
                         
String codeSnippetClassName)
Sends the given class files to the target and loads them. If the given class name is not null, run the code snippet with this class name. Returns whether the code snippet could be deployed. Note it must return true even if running the code snippet threw an exception.

The details of sending and loading the class files are left up to implementations.

To run a code snippet, an implementation should create a new instance of the given code snippet class and call (directly or using another means) its RUN_METHOD.

Also before the call, the implementation should copy the values of the local variables (if any) into the corresponding fields of the code snippet instance. A field name is formed of LOCAL_VAR_PREFIX preceded the name of the local variable. For example, the field name for local variable "myLocal" is "val$myLocal" (assuming the value of LOCAL_VAR_PREFIX is "val$"). In the same way, the implementation should copy the value of the 'this' object into the field called DELEGATE_THIS.

After calling the RUN_METHOD, the values of the local variables may have been modified. The implementation must copy the values of the fields back into the local variables.

Finally, the overall value returned by the code snippet can be retrieved from the special field RESULT_VALUE_FIELD on the code snippet instance. The Class that is the runtime type of the returned value can be retrieved from the special field RESULT_TYPE_FIELD.

Parameters:
classFileBytes - the list of class file bytes
classFileCompoundNames - the corresponding list of class file type compound names (example of a compound name: {"java", "lang", "Object"})
codeSnippetClassName - name of the actual class to instantiate and run, or null if none
Returns:
true if the code snippet was successfully deployed

acceptProblem

void acceptProblem(
IMarker problemMarker,
                   
String fragmentSource,
                   int fragmentKind)
Notifies of an evaluation problem. Problems can arise for source of the following kinds:

  • global variable (VARIABLE) - fragment source is name of variable
  • code snippet (CODE_SNIPPET) - fragment source is code snippet
  • import declaration (IMPORT) - fragment source is import
  • package declaration (PACKAGE) - fragment source is package declaration
  • other (INTERNAL) - no fragment source is involved, internal error occurred.

Parameters:
problemMarker - the problem marker (cannot be null)
fragmentSource - the fragment source
fragmentKind - the kind of source fragment; one of: VARIABLE, CODE_SNIPPET, IMPORT, PACKAGE, or INTERNAL

Eclipse JDT
Release 3.5

Copyright (c) IBM Corp. and others 2000, 2008. All Rights Reserved.

 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire