Class UpdateRequest.UpdateMappingConsumer
- java.lang.Object
-
- org.datanucleus.store.rdbms.request.UpdateRequest.UpdateMappingConsumer
-
- All Implemented Interfaces:
MappingConsumer
- Enclosing class:
- UpdateRequest
private class UpdateRequest.UpdateMappingConsumer extends java.lang.Object implements MappingConsumer
Mapping Consumer used for generating the UPDATE statement for an object in a table. This statement will be of the formUPDATE table-name SET param1=?,param2=? WHERE id1=? AND id2=?
or (when also performing version checks)UPDATE table-name SET param1=?,param2=?,version={newvers} WHERE id1=? AND id2=? AND version={oldvers}
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.MapassignedColumns(package private) java.util.List<MappingCallbacks>callbackMappingsMappings that require callbacks calling.private org.datanucleus.metadata.AbstractClassMetaDatacmdMetaData for the class of the object(package private) java.lang.StringBuildercolumnAssignmentsfor UPDATE statement(package private) booleaninitializedFlag for initialisation state of the consumer.(package private) intparamIndexCurrent parameter index.(package private) java.util.List<JavaTypeMapping>postSetMappingsMappings that require post-set processing.(package private) java.util.ListupdateFieldsNumbers of all fields to be updated.private StatementMappingIndexupdateTimestampStatementMappingprivate StatementMappingIndexupdateUserStatementMapping(package private) java.lang.StringBuilderwhereWhere clause for the statement.private booleanwhereClauseConsumption(package private) java.util.ListwhereFieldsNumbers of all WHERE clause fields.
-
Constructor Summary
Constructors Constructor Description UpdateMappingConsumer(org.datanucleus.metadata.AbstractClassMetaData cmd)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconsumeMapping(JavaTypeMapping m, org.datanucleus.metadata.AbstractMemberMetaData mmd)Consumes a mapping for a field.voidconsumeMapping(JavaTypeMapping m, MappingType mappingType)Consumes a mapping associated to surrogate / special columns.voidconsumeUnmappedColumn(Column col)Consumer a column without mapping.java.util.List<MappingCallbacks>getMappingCallbacks()java.util.List<JavaTypeMapping>getPostSetMappings()java.lang.StringgetStatement()Accessor for the basic update SQL statement.int[]getUpdateFieldNumbers()Accessor for the numbers of fields to be updated (excluding PK fields).StatementMappingIndexgetUpdateTimestampStatementMapping()StatementMappingIndexgetUpdateUserStatementMapping()int[]getWhereFieldNumbers()Accessor for the numbers of fields in the WHERE clause.voidpreConsumeMapping(int highest)This method is called before consuming the mappingsvoidsetWhereClauseConsumption(boolean whereClause)
-
-
-
Field Detail
-
initialized
boolean initialized
Flag for initialisation state of the consumer.
-
paramIndex
int paramIndex
Current parameter index.
-
updateFields
java.util.List updateFields
Numbers of all fields to be updated.
-
whereFields
java.util.List whereFields
Numbers of all WHERE clause fields.
-
postSetMappings
java.util.List<JavaTypeMapping> postSetMappings
Mappings that require post-set processing.
-
callbackMappings
java.util.List<MappingCallbacks> callbackMappings
Mappings that require callbacks calling.
-
columnAssignments
java.lang.StringBuilder columnAssignments
for UPDATE statement
-
assignedColumns
java.util.Map assignedColumns
-
where
java.lang.StringBuilder where
Where clause for the statement. Built during the consumption process.
-
cmd
private final org.datanucleus.metadata.AbstractClassMetaData cmd
MetaData for the class of the object
-
whereClauseConsumption
private boolean whereClauseConsumption
-
updateUserStatementMapping
private StatementMappingIndex updateUserStatementMapping
-
updateTimestampStatementMapping
private StatementMappingIndex updateTimestampStatementMapping
-
-
Method Detail
-
setWhereClauseConsumption
public void setWhereClauseConsumption(boolean whereClause)
-
preConsumeMapping
public void preConsumeMapping(int highest)
Description copied from interface:MappingConsumerThis method is called before consuming the mappings- Specified by:
preConsumeMappingin interfaceMappingConsumer- Parameters:
highest- the highest number for the fields that are going to be provided in the consumer
-
consumeMapping
public void consumeMapping(JavaTypeMapping m, org.datanucleus.metadata.AbstractMemberMetaData mmd)
Consumes a mapping for a field.- Specified by:
consumeMappingin interfaceMappingConsumer- Parameters:
m- The mapping.mmd- MetaData for the field
-
consumeMapping
public void consumeMapping(JavaTypeMapping m, MappingType mappingType)
Consumes a mapping associated to surrogate / special columns.- Specified by:
consumeMappingin interfaceMappingConsumer- Parameters:
m- The mapping.mappingType- the Mapping type
-
consumeUnmappedColumn
public void consumeUnmappedColumn(Column col)
Consumer a column without mapping.- Specified by:
consumeUnmappedColumnin interfaceMappingConsumer- Parameters:
col- Column
-
getUpdateUserStatementMapping
public StatementMappingIndex getUpdateUserStatementMapping()
-
getUpdateTimestampStatementMapping
public StatementMappingIndex getUpdateTimestampStatementMapping()
-
getPostSetMappings
public java.util.List<JavaTypeMapping> getPostSetMappings()
-
getMappingCallbacks
public java.util.List<MappingCallbacks> getMappingCallbacks()
-
getUpdateFieldNumbers
public int[] getUpdateFieldNumbers()
Accessor for the numbers of fields to be updated (excluding PK fields).- Returns:
- array of absolute field numbers
-
getWhereFieldNumbers
public int[] getWhereFieldNumbers()
Accessor for the numbers of fields in the WHERE clause.- Returns:
- array of absolute WHERE clause field numbers
-
getStatement
public java.lang.String getStatement()
Accessor for the basic update SQL statement.UPDATE TABLE SET COL1 = ?, COL2 = ? WHERE COL3 = ? AND COL4 = ?
- Returns:
- The update SQL statement
-
-