Interface IParamValueProcessor
-
- All Known Implementing Classes:
DistributedPostgresParamValueProcessor
,PlainDerbyParamValueProcessor
,PlainParamValueProcessor
,PlainPostgresParamValueProcessor
public interface IParamValueProcessor
Interface for a processor which can handle the different parameter types defined at the schema level. Implementations may need to collect values first before executing any actual inserts. This is required so that the processor can resolve any referenced foreign key values (like common_token_value, common_canonical_value for example).
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
close()
Close out the current batch, completing the processing for any parameter values collected so farvoid
publish(BatchParameterValue bpv)
Publish the given parameter value (which by now should have any FK references it needs)void
pushBatch()
Push any data we've accumulated so far.void
resetBatch()
Call when a transaction has been rolled back because of a deadlock or other retryable error and we want to try and process the batch againvoid
resolveCanonicalValues(java.util.List<CommonCanonicalValue> unresolvedCanonicalValues, java.util.Map<CommonCanonicalValueKey,CommonCanonicalValue> commonCanonicalValueMap)
void
resolveCommonTokenValues(java.util.List<CommonTokenValue> unresolvedTokenValues, java.util.Map<CommonTokenValueKey,CommonTokenValue> commonTokenValueMap)
void
resolveLogicalResourceIdents(java.util.List<LogicalResourceIdentValue> unresolvedLogicalResourceIdents, java.util.Map<LogicalResourceIdentKey,LogicalResourceIdentValue> logicalResourceIdentMap)
Make sure we have values for all the logical_resource_ident values we have collected in the current batch.void
resolveParameterNames(java.util.List<ParameterNameValue> unresolvedParameterNames, java.util.Map<java.lang.String,ParameterNameValue> parameterNameMap)
void
resolveSystemValues(java.util.List<CodeSystemValue> unresolvedSystemValues, java.util.Map<java.lang.String,CodeSystemValue> codeSystemValueMap)
void
startBatch()
Initialize the processor ready to start a new batch
-
-
-
Method Detail
-
publish
void publish(BatchParameterValue bpv) throws FHIRPersistenceException
Publish the given parameter value (which by now should have any FK references it needs)- Parameters:
bpv
-- Throws:
FHIRPersistenceException
-
startBatch
void startBatch()
Initialize the processor ready to start a new batch
-
close
void close()
Close out the current batch, completing the processing for any parameter values collected so far
-
pushBatch
void pushBatch() throws FHIRPersistenceException
Push any data we've accumulated so far. This may occur if we cross a volume or functional threshold, and will always occur as the last step before the current transaction is committed.- Throws:
FHIRPersistenceException
-
resetBatch
void resetBatch()
Call when a transaction has been rolled back because of a deadlock or other retryable error and we want to try and process the batch again
-
resolveLogicalResourceIdents
void resolveLogicalResourceIdents(java.util.List<LogicalResourceIdentValue> unresolvedLogicalResourceIdents, java.util.Map<LogicalResourceIdentKey,LogicalResourceIdentValue> logicalResourceIdentMap) throws FHIRPersistenceException
Make sure we have values for all the logical_resource_ident values we have collected in the current batch. Need to make sure these are added in order to minimize deadlocks. Note that because we may create new logical_resource_ident records, we could be blocked by the main add_any_resource procedure run within the server CREATE/UPDATE- Parameters:
unresolvedLogicalResourceIdents
-logicalResourceIdentMap
-- Throws:
FHIRPersistenceException
-
resolveParameterNames
void resolveParameterNames(java.util.List<ParameterNameValue> unresolvedParameterNames, java.util.Map<java.lang.String,ParameterNameValue> parameterNameMap) throws FHIRPersistenceException
- Parameters:
unresolvedParameterNames
-parameterNameMap
-- Throws:
FHIRPersistenceException
-
resolveSystemValues
void resolveSystemValues(java.util.List<CodeSystemValue> unresolvedSystemValues, java.util.Map<java.lang.String,CodeSystemValue> codeSystemValueMap) throws FHIRPersistenceException
- Parameters:
unresolvedSystemValues
-codeSystemValueMap
-- Throws:
FHIRPersistenceException
-
resolveCommonTokenValues
void resolveCommonTokenValues(java.util.List<CommonTokenValue> unresolvedTokenValues, java.util.Map<CommonTokenValueKey,CommonTokenValue> commonTokenValueMap) throws FHIRPersistenceException
- Parameters:
unresolvedTokenValues
-commonTokenValueMap
-- Throws:
FHIRPersistenceException
-
resolveCanonicalValues
void resolveCanonicalValues(java.util.List<CommonCanonicalValue> unresolvedCanonicalValues, java.util.Map<CommonCanonicalValueKey,CommonCanonicalValue> commonCanonicalValueMap) throws FHIRPersistenceException
- Parameters:
unresolvedCanonicalValues
-commonCanonicalValueMap
-- Throws:
FHIRPersistenceException
-
-