|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.sql.compile.ExpressionClassBuilder
org.apache.derby.impl.sql.compile.ActivationClassBuilder
class ActivationClassBuilder
ActivationClassBuilder provides an interface to satisfy generation's common tasks in building an activation class, as well as a repository for the JavaFactory used to generate the basic language constructs for the methods in the class. Common tasks include the setting of a static field for each expression function that gets added, the creation of the execute method that gets expanded as the query tree is walked, setting the superclass.
An activation class is defined for each statement. It has the following basic layout: TBD See the document \\Jeeves\Unversioned Repository 1\Internal Technical Documents\Other\GenAndExec.doc for details.
We could also verify methods as they are added, to have 0 parameters, ...
Field Summary | |
---|---|
private MethodBuilder |
closeActivationMethod
|
private LocalField |
cursorResultSetField
|
private LocalField |
targetResultSetField
|
Fields inherited from class org.apache.derby.impl.sql.compile.ExpressionClassBuilder |
---|
cb, cdtField, constructor, currentDatetimeFieldName, executeMethod, gc, myCompCtx, nextExprNum, nextFieldNum, nextNonFastExpr |
Constructor Summary | |
---|---|
ActivationClassBuilder(java.lang.String superClass,
CompilerContext cc)
By the time this is done, it has constructed the following class: public class #className extends #superClass { // public void reset() { return; } public ResultSet execute() throws StandardException { throwIfClosed("execute"); // statements must be added here } public #className() { super(); } } |
Method Summary | |
---|---|
(package private) void |
addCursorPositionCode()
Updatable cursors need to add a getter method for use in BaseActivation to access the result set that identifies target rows for a positioned update or delete. |
private MethodBuilder |
beginExecuteMethod()
By the time this is done, it has generated the following code public ResultSet execute() throws StandardException { throwIfClosed("execute"); // statements must be added here } } |
(package private) void |
finishExecuteMethod(boolean genMarkAsTopNode)
An execute method always ends in a return statement, returning the result set that has been constructed. |
(package private) java.lang.String |
getBaseClassName()
The base class for activations is BaseActivation |
(package private) MethodBuilder |
getCloseActivationMethod()
|
protected LocalField |
getCurrentSetup()
|
java.lang.String |
getPackageName()
Get the package name that this generated class lives in |
int |
getRowCount()
Get the number of ExecRows to allocate |
(package private) void |
rememberCursor(MethodBuilder mb)
Updatable cursors need to add a field and its initialization for use in BaseActivation to access the result set that identifies cursor result rows for a positioned update or delete. |
(package private) void |
rememberCursorTarget(MethodBuilder mb)
Updatable cursors need to add a field and its initialization for use in BaseActivation to access the result set that identifies target rows for a positioned update or delete. |
void |
setNumSubqueries()
Generate the assignment for numSubqueries = x |
(package private) MethodBuilder |
startResetMethod()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private LocalField targetResultSetField
private LocalField cursorResultSetField
private MethodBuilder closeActivationMethod
Constructor Detail |
---|
ActivationClassBuilder(java.lang.String superClass, CompilerContext cc) throws StandardException
public class #className extends #superClass { // public void reset() { return; } public ResultSet execute() throws StandardException { throwIfClosed("execute"); // statements must be added here } public #className() { super(); } }
StandardException
- thrown on failureMethod Detail |
---|
public java.lang.String getPackageName()
getPackageName
in class ExpressionClassBuilder
java.lang.String getBaseClassName()
getBaseClassName
in class ExpressionClassBuilder
public int getRowCount() throws StandardException
getRowCount
in class ExpressionClassBuilder
StandardException
- thrown on failurepublic void setNumSubqueries()
setNumSubqueries
in class ExpressionClassBuilder
StandardException
- thrown on failureprivate MethodBuilder beginExecuteMethod() throws StandardException
public ResultSet execute() throws StandardException { throwIfClosed("execute"); // statements must be added here } }
StandardException
- thrown on failureMethodBuilder startResetMethod()
void finishExecuteMethod(boolean genMarkAsTopNode)
void addCursorPositionCode()
The code that is generated is:
public CursorResultSet getTargetResultSet() { return targetResultSet; } public CursorResultSet getCursorResultSet() { return cursorResultSet; }
void rememberCursorTarget(MethodBuilder mb)
The code that is generated is:
The expression that is generated is:private CursorResultSet targetResultSet;
(ResultSet) (targetResultSet = (CursorResultSet) #expression#)
void rememberCursor(MethodBuilder mb)
The code that is generated is:
The expression that is generated is:private CursorResultSet cursorResultSet;
The expression must be the top stack word when this method is called.(ResultSet) (cursorResultSet = (CursorResultSet) #expression#)
protected LocalField getCurrentSetup()
getCurrentSetup
in class ExpressionClassBuilder
MethodBuilder getCloseActivationMethod()
|
Built on Thu 2012-03-29 21:53:33+0000, from revision ??? | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |