public class QuercusAdapter extends LanguageAdapterBase
LanguageAdapter
that supports the PHP language as implemented by Quercus. Note that Quercus compilation
is only available in Resin Professional, and as such no compilation is
supported in this adapter.Modifier and Type | Field and Description |
---|---|
static String |
PHP_CACHE_DIR
The default base directory for cached executables.
|
static String |
QUERCUS_ENVIRONMENT
The Quercus environment attribute.
|
static String |
QUERCUS_WRITER_STREAM
The Quercus writer stream attribute.
|
protected Quercus |
quercusRuntime
The Quercus runtime.
|
DEFAULT_EXTENSION, DEFAULT_TAG, EXTENSIONS, LANGUAGE_NAME, LANGUAGE_VERSION, NAME, TAGS, VERSION
Constructor and Description |
---|
QuercusAdapter()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
static ExecutionException |
createExecutionException(Executable executable,
Exception x)
Creates an execution exception with a full stack.
|
static ParsingException |
createParsingException(Executable executable,
QuercusParseException x) |
Program |
createProgram(String sourceCode,
boolean isScriptlet,
int position,
int startLineNumber,
int startColumnNumber,
Executable executable)
Turns source code into a program.
|
Object |
enter(String entryPointName,
Executable executable,
ExecutionContext executionContext,
Object... arguments)
Enters the executable at a stored, named location.
|
static String |
extractExceptionStackFromMessage(String message,
Collection<StackFrame> stack) |
File |
getCacheDir()
The base directory for cached executables.
|
Env |
getEnvironment(ExecutionContext executionContext)
Gets a Quercus environment stored in the execution context, creating it
if it doesn't exist.
|
String |
getSourceCodeForExpressionInclude(String expression,
Executable executable)
Creates source code for including the output of a text-with-scriptlets
document.
|
String |
getSourceCodeForExpressionOutput(String expression,
Executable executable)
Creates source code for outputting a source code expression to standard
output.
|
String |
getSourceCodeForLiteralOutput(String literal,
Executable executable)
Creates source code for outputting literal text to standard output.
|
void |
releaseContext(ExecutionContext executionContext)
Cleans up any resources used for an execution context.
|
getAttributes, getLock, getManager, isEphemeral, isThreadSafe, setManager
public static final String QUERCUS_ENVIRONMENT
public static final String QUERCUS_WRITER_STREAM
public static final String PHP_CACHE_DIR
protected final Quercus quercusRuntime
public QuercusAdapter() throws LanguageAdapterException
LanguageAdapterException
- In case of an initialization errorpublic static ParsingException createParsingException(Executable executable, QuercusParseException x)
public static ExecutionException createExecutionException(Executable executable, Exception x)
executable
- The exeuctablex
- The exceptionpublic static String extractExceptionStackFromMessage(String message, Collection<StackFrame> stack)
public Env getEnvironment(ExecutionContext executionContext)
executionContext
- The execution contextpublic File getCacheDir()
public String getSourceCodeForLiteralOutput(String literal, Executable executable) throws ParsingException
LanguageAdapter
getSourceCodeForLiteralOutput
in interface LanguageAdapter
getSourceCodeForLiteralOutput
in class LanguageAdapterBase
literal
- The literal textexecutable
- The executableParsingException
- In case of a parsing errorpublic String getSourceCodeForExpressionOutput(String expression, Executable executable) throws ParsingException
LanguageAdapter
getSourceCodeForExpressionOutput
in interface LanguageAdapter
getSourceCodeForExpressionOutput
in class LanguageAdapterBase
expression
- The source code expressionexecutable
- The executableParsingException
- In case of a parsing errorpublic String getSourceCodeForExpressionInclude(String expression, Executable executable) throws ParsingException
LanguageAdapter
For this to work, the executable must have been created with a container
that supports an inclusion command named according to the language
manager attribute
LanguageManager.CONTAINER_INCLUDE_COMMAND_ATTRIBUTE
.
getSourceCodeForExpressionInclude
in interface LanguageAdapter
getSourceCodeForExpressionInclude
in class LanguageAdapterBase
expression
- The source code expressionexecutable
- The executableParsingException
- In case of a parsing errorLanguageManager.getAttributes()
public Program createProgram(String sourceCode, boolean isScriptlet, int position, int startLineNumber, int startColumnNumber, Executable executable) throws ParsingException
LanguageAdapter
Program.prepare()
on the program.sourceCode
- The source codeisScriptlet
- Whether the source code is a scriptletposition
- The program's position in the executablestartLineNumber
- The line number in the document for where the program's source
code beginsstartColumnNumber
- The column number in the document for where the program's source
code beginsexecutable
- The executableParsingException
- In case of a parsing errorpublic Object enter(String entryPointName, Executable executable, ExecutionContext executionContext, Object... arguments) throws NoSuchMethodException, ParsingException, ExecutionException
LanguageAdapter
enter
in interface LanguageAdapter
enter
in class LanguageAdapterBase
entryPointName
- The entry point nameexecutable
- The executableexecutionContext
- The executable contextarguments
- Optional state to pass to the entry pointNoSuchMethodException
- In case the entry point does not existParsingException
- In case of a parsing errorExecutionException
- In case of an execution errorpublic void releaseContext(ExecutionContext executionContext)
LanguageAdapter
releaseContext
in interface LanguageAdapter
releaseContext
in class LanguageAdapterBase
executionContext
- The execution contextExecutionContext.getAttributes()
Copyright © 2009-2015 Three Crickets LLC.