SMACS

Package smacs.write.tree

ProgramCompile conversion to target language The successor to the smacs.write.builds compilation step.

See:
          Description

Interface Summary
HasProgramCompileSqlQuery has a ProgramCompileSqlQuery instance.
HasProgramConditionList Has List of ProgramConditions
HasProgramCurrentRecordCursor knows a cursor variable.
HasProgramCurrentRecordSource may be to know record source structure.
HasProgramCurrentRecordVariable has that it has a record variable during script generation.
HasProgramDistinctVariable assert it has a distinct variable.
HasProgramMaterializeCurrentRecordVariable assert there is a base being a record variable.
HasProgramMaterializeList has children of type ProgramMaterializeQuery.
HasProgramMaterializeRecordHolder usually a ProgramTransferLoop.
HasProgramTargetTableExpression handle target table specifications.
HasSqlOfExpression assert of existing sql snippet.
NewScriptAddFromCursorRecord abstraction for childs of ProgramInsertRecordField.
ProgramCondition to be stored on a ProgramInsertConditionList.
ProgramFreezeDistinctSetHolding usually a ProgramTransferLoop.
ProgramFreezeInsertRecordSetHolding usually a ProgramTransferLoop.
ProgramInsertRecordFieldElement abstraction for ProgramInsertRecordField.
ProgramSimpleNode base interface for all smacs.write.tree classes.
 

Class Summary
CompilesScript build ProgramScript tree.
NewProgramCurrentRecordVariable a helper class.
ProgramCompileSqlQuery create sql syntax object.
ProgramConditionDistinctSet used to register a ProgramDistinctVariable.
ProgramConditionSqlWhere a ProgramCondition wrapping a WHERE clause.
ProgramConditionUniqueRecord used in ProgramInsertConditionList.
ProgramConditionUniqueRecordConverter converts from DbMappingUniqueKeyFields into ProgramConditionUniqueRecord.
ProgramCreateCursor create a "tupel stream source".
ProgramDbMappingTransform wrapping a backreference to a DbMappingTransform node.
ProgramDistinctVariable generates a new distinct-target semantics.
ProgramFreezeDistinctSet exclusive rules by their name.
ProgramFreezeInsertRecordSet exclusive rules by their name.
ProgramFromCursorRow try to consume a "record" from a tupel stream (old).
ProgramInsertConditionList register and convert conditions for a ProgramInsertCursorRow.
ProgramInsertCursorRow try to consume a "record" from a tupel stream (new).
ProgramInsertRecordField conversion into insert record field layout +.
ProgramInsertRecordFieldAddAllFromCursorRecord build PsqlAddAllFromCursorRecord.
ProgramInsertRecordFieldAddFieldFromCursorRecord build PsqlAddFieldFromCursorRecord.
ProgramInsertRecordFieldAddFieldFromExpression build PsqlAddFieldFromExpression.
ProgramInsertRecordVariable boolean guard-variable for a target action.
ProgramInsertValuesRecord compute output script values computations.
ProgramMaterializeInsert unused - ignore.
ProgramMaterializeQuery generator instantiated by ProgramCreateCursor.
ProgramMaterializeRecord member instance of ProgramMaterializeRecordHolder.
ProgramMaterializeRecordHolder usually used in a ProgramTransferLoop.
ProgramScript base script handler.
ProgramScriptNode base for all smacs.write.tree classes.
ProgramScriptWriter frontend - accept data items and build a ProgramScript skeleton.
ProgramSqlFieldExpression compute a value from an sql snippet.
ProgramSqlTableExpression the target table expression.
ProgramTransferLoop consume a "tupel stream source" as loop over each record (new).
 

Package smacs.write.tree Description

ProgramCompile conversion to target language

The successor to the smacs.write.builds compilation step. This time we use the smacs.load imported tree as the intermediate representation to generate the target script from.

The real trick goes about handling the order of calls, the creation of various cursors and update rows, and to generate the control flow around the various dependencies of update calls and their foregoing build calls.

So far we have two basic script elements, the creation of a cursor along with a loop as input and a target values record along with an update/insert call.


SMACS