public void receiveLocalPart(final FileDescriptor fileDescriptor,
                                 final Path sourcePath,
                                 final boolean allowMove,
                                 final boolean synchroniseMerge) throws IOException {
        final MergeProcessor mergeProcessor = mergeProcessorProvider.get();
        if (allowMove) {
            // If we allow move then we can allow the file store to move the file directly into the store.
            mergeProcessor.add(fileDescriptor, sourcePath, synchroniseMerge);

        } else {
            // Otherwise we need to copy the file to a temporary location first before it can be moved into the store.
            final String receiveFileName = StringIdUtil.idToString(receiveId.incrementAndGet()) +
                                           SequentialFileStore.ZIP_EXTENSION;
            final Path receiveFile = receiveDir.resolve(receiveFileName);
            Files.copy(sourcePath, receiveFile);
            mergeProcessor.add(fileDescriptor, receiveFile, synchroniseMerge);
        }
    }
Receive a part file to add to an existing shard.

@param createTime
@param metaId
@param fileHash
@param fileName
@param inputStream
@param synchroniseMerge
@throws IOException
stroom-state/stroom-planb-impl/src/main/java/stroom/planb/impl/data/PartDestination.java