class MetadataSyncPreProcessor {

    public void handleDataValuePush( MetadataRetryContext context, MetadataSyncJobParameters jobParameters )
    {
        SynchronizationResult dataValuesSynchronizationResult =
            dataValueSync.synchronizeData( jobParameters.getDataValuesPageSize() );

        if ( dataValuesSynchronizationResult.status == SynchronizationStatus.FAILURE )
        {
            context.updateRetryContext( MetadataSyncJob.DATA_PUSH_SUMMARY, dataValuesSynchronizationResult.message, null, null );
            throw new MetadataSyncServiceException( dataValuesSynchronizationResult.message );
        }
    }

    public  MetadataSyncPreProcessor(
        SystemSettingManager systemSettingManager,
        MetadataVersionService metadataVersionService,
        MetadataVersionDelegate metadataVersionDelegate,
        TrackerSynchronization trackerSync,
        EventSynchronization eventSync,
        DataValueSynchronization dataValueSync,
        CompleteDataSetRegistrationSynchronization completeDataSetRegistrationSync );

}