Class TraceabilityFile

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    public class TraceabilityFile
    extends java.lang.Object
    implements java.lang.AutoCloseable
    Used to handle zip file for traceability
    • Constructor Summary

      Constructors 
      Constructor Description
      TraceabilityFile​(java.io.File file)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      flush the stream and close it.
      void closeStoreLog()
      Close the extracted data file
      void initStoreLog()
      Create a new file for extracted data.
      Should be directly followed by one or multiple storeLog
      Must be close with closeStoreLog
      void storeAdditionalInformation​(long numberOfLine, java.lang.String startDate, java.lang.String endDate)
      Add an additionalInformation file with the given data in the zipFile
      void storeComputedInformation​(java.lang.String currentHash, java.lang.String previousHash, java.lang.String currentHashMinusOneMonth, java.lang.String currentHashMinusOneYear)
      Add an computedInformation file with the traceability data in the zipFile
      void storeLog​(byte[] line)
      Add a line of extracted data in the recently created file.
      Must be directly preceded by a call of initStoreLog or storeLog
      void storeMerkleTree​(MerkleTree merkleTree)
      Add a merkleTree file with the computed merkleTree in the zipFile
      void storeTimeStampToken​(byte[] timestampToken)
      Add a timestampToken file with the computed token of the traceability operation in the zipFile
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • previousTimestampToken

        public static final java.lang.String previousTimestampToken
        See Also:
        Constant Field Values
      • previousTimestampTokenMinusOneMonth

        public static final java.lang.String previousTimestampTokenMinusOneMonth
        See Also:
        Constant Field Values
      • previousTimestampTokenMinusOneYear

        public static final java.lang.String previousTimestampTokenMinusOneYear
        See Also:
        Constant Field Values
    • Constructor Detail

      • TraceabilityFile

        public TraceabilityFile​(java.io.File file)
                         throws java.io.FileNotFoundException,
                                org.apache.commons.compress.archivers.ArchiveException
        Parameters:
        file - the targeted file to store tmp zip file
        Throws:
        java.io.FileNotFoundException - if the given file is missing
        org.apache.commons.compress.archivers.ArchiveException - if any error occurs while creating ZipArchiveOutputStram
    • Method Detail

      • storeMerkleTree

        public void storeMerkleTree​(MerkleTree merkleTree)
                             throws java.io.IOException
        Add a merkleTree file with the computed merkleTree in the zipFile
        Parameters:
        merkleTree - the tree that should be store in zip
        Throws:
        java.io.IOException - if any error occurs while attempting to write in zip
      • storeTimeStampToken

        public void storeTimeStampToken​(byte[] timestampToken)
                                 throws java.io.IOException
        Add a timestampToken file with the computed token of the traceability operation in the zipFile
        Parameters:
        timestampToken - of the traceability operation
        Throws:
        java.io.IOException - if any error occurs while attempting to write in zip
      • initStoreLog

        public void initStoreLog()
                          throws java.io.IOException
        Create a new file for extracted data.
        Should be directly followed by one or multiple storeLog
        Must be close with closeStoreLog
        Throws:
        java.io.IOException - if any error occurs while attempting to write in zip
      • storeLog

        public void storeLog​(byte[] line)
                      throws java.io.IOException
        Add a line of extracted data in the recently created file.
        Must be directly preceded by a call of initStoreLog or storeLog
        Throws:
        java.io.IOException - if any error occurs while attempting to write in zip
      • closeStoreLog

        public void closeStoreLog()
                           throws java.io.IOException
        Close the extracted data file
        Throws:
        java.io.IOException - if error on closing stream
      • storeAdditionalInformation

        public void storeAdditionalInformation​(long numberOfLine,
                                               java.lang.String startDate,
                                               java.lang.String endDate)
                                        throws java.io.IOException
        Add an additionalInformation file with the given data in the zipFile
        Parameters:
        numberOfLine - of the extracted data secured by the traceability process
        startDate - of the traceability process
        endDate - of the traceability process
        Throws:
        java.io.IOException - if any error occurs while attempting to write in zip
      • storeComputedInformation

        public void storeComputedInformation​(java.lang.String currentHash,
                                             java.lang.String previousHash,
                                             java.lang.String currentHashMinusOneMonth,
                                             java.lang.String currentHashMinusOneYear)
                                      throws java.io.IOException
        Add an computedInformation file with the traceability data in the zipFile
        Parameters:
        currentHash - hash of the new merkleTree root
        previousHash - hash of the last traceability operation merkleTree root
        currentHashMinusOneMonth - hash of the (Month - 1) traceability operation merkleTree root
        currentHashMinusOneYear - hash of the (Year - 1) traceability operation merkleTree root
        Throws:
        java.io.IOException - if any error occurs while attempting to write in zip
      • close

        public void close()
                   throws java.io.IOException
        flush the stream and close it.
        Specified by:
        close in interface java.lang.AutoCloseable
        Throws:
        java.io.IOException - if error on closing stream