Class SpaceItemWriter

  • All Implemented Interfaces:
    org.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>, org.springframework.batch.core.StepExecutionListener, org.springframework.batch.core.StepListener, org.springframework.batch.item.ItemWriter<org.duracloud.common.model.ContentItem>

    public class SpaceItemWriter
    extends StepExecutionSupport
    implements org.springframework.batch.item.ItemWriter<org.duracloud.common.model.ContentItem>, org.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>
    This class is responsible for reading the contents and properties of a duracloud content item, writing it to disk, appending its md5 and sha256 to separate text files, appending the item properties to a json file, and writing the item to the snapshot content repo.
    Author:
    Erik Paulsson Date: 2/7/14
    • Constructor Detail

      • SpaceItemWriter

        public SpaceItemWriter​(Snapshot snapshot,
                               org.duracloud.retrieval.source.RetrievalSource retrievalSource,
                               java.io.File contentDir,
                               org.duracloud.retrieval.mgmt.OutputWriter outputWriter,
                               java.io.File propsFile,
                               java.io.File md5ManifestFile,
                               java.io.File sha256ManifestFile,
                               SnapshotManager snapshotManager,
                               SpaceManifestSnapshotManifestVerifier spaceManifestSnapshotManifestVerifier)
        Parameters:
        snapshot -
        retrievalSource -
        contentDir -
        outputWriter -
        propsFile -
        md5ManifestFile -
        sha256ManifestFile -
        snapshotManager -
        spaceManifestSnapshotManifestVerifier -
    • Method Detail

      • closeDatabase

        protected void closeDatabase()
      • deleteDatabase

        protected void deleteDatabase()
      • write

        public void write​(java.util.List<? extends org.duracloud.common.model.ContentItem> items)
                   throws java.io.IOException
        Specified by:
        write in interface org.springframework.batch.item.ItemWriter<org.duracloud.common.model.ContentItem>
        Throws:
        java.io.IOException
      • retrieveFile

        protected void retrieveFile​(org.duracloud.common.model.ContentItem contentItem,
                                    java.io.File directory)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • retrieveFile

        protected void retrieveFile​(org.duracloud.common.model.ContentItem contentItem,
                                    java.io.File directory,
                                    boolean writeChecksums,
                                    boolean lastItem)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • getTotalChecksumsPerformed

        protected int getTotalChecksumsPerformed()
      • writeMD5Checksum

        protected void writeMD5Checksum​(java.lang.String contentId,
                                        java.lang.String md5Checksum)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • writeSHA256Checksum

        protected void writeSHA256Checksum​(java.lang.String contentId,
                                           java.lang.String sha256Checksum)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • writeContentProperties

        protected void writeContentProperties​(java.lang.String contentId,
                                              java.util.Map<java.lang.String,​java.lang.String> props,
                                              boolean lastItem)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • retrieveSnapshotProperties

        protected void retrieveSnapshotProperties()
      • afterStep

        public org.springframework.batch.core.ExitStatus afterStep​(org.springframework.batch.core.StepExecution stepExecution)
        Specified by:
        afterStep in interface org.springframework.batch.core.StepExecutionListener
        Overrides:
        afterStep in class StepExecutionSupport
      • beforeStep

        public void beforeStep​(org.springframework.batch.core.StepExecution stepExecution)
        Specified by:
        beforeStep in interface org.springframework.batch.core.StepExecutionListener
        Overrides:
        beforeStep in class StepExecutionSupport
      • onWriteError

        public void onWriteError​(java.lang.Exception e,
                                 java.util.List<? extends org.duracloud.common.model.ContentItem> items)
        Specified by:
        onWriteError in interface org.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>
      • beforeWrite

        public void beforeWrite​(java.util.List<? extends org.duracloud.common.model.ContentItem> items)
        Specified by:
        beforeWrite in interface org.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>
      • afterWrite

        public void afterWrite​(java.util.List<? extends org.duracloud.common.model.ContentItem> items)
        Specified by:
        afterWrite in interface org.springframework.batch.core.ItemWriteListener<org.duracloud.common.model.ContentItem>