@startuml
title __DB's Class Diagram__\n
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      namespace impl.db {
        class fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.impl.db.MetadataDeserializerDatabaseImpl {
            {static} - LOG : Logger
            - sourceOutputStream : OutputStream
            + deserialize()
            {static} + readLastLine()
        }
      }
    }
  }
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      namespace impl.db {
        class fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.impl.db.WalletDeserializerDirectAccessImpl {
            ~ metas : List<DigitalBadgeMetadata>
            {static} - LOG : Logger
            - sourceOutputStream : OutputStream
            + WalletDeserializerDirectAccessImpl()
            + deserialize()
            + deserialize()
            + getDeserializingStream()
            + getSourceOutputStream()
            + setSourceOutputStream()
        }
      }
    }
  }
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      namespace impl.db {
        class fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.impl.db.WalletSerializerDirectAccessImpl {
            + getSerializingStream()
            + getSourceInputStream()
            + serialize()
        }
      }
    }
  }
  fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.impl.db.MetadataDeserializerDatabaseImpl .up.|> fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.MetadataDeserializer
  fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.impl.db.WalletDeserializerDirectAccessImpl .up.|> fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.DirectAccessDatabaseDeserializer
  fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.DirectAccessDatabaseDeserializer -up-|> fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.DatabaseDeserializer
  fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.DatabaseDeserializer -up-|> fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.BadgeDeserializer
  fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.impl.db.WalletSerializerDirectAccessImpl -up-|> fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.AbstractStreamingImageSerializer
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      abstract class fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.AbstractStreamingImageSerializer {
          + serialize()
      }
    }
  }
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      interface fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.BadgeDeserializer {
          {abstract} + deserialize()
          {abstract} + getSourceOutputStream()
          {abstract} + setSourceOutputStream()
      }
    }
  }
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      interface fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.DatabaseDeserializer {
          {abstract} + getDeserializingStream()
      }
    }
  }
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      interface fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.DirectAccessDatabaseDeserializer {
          {abstract} + deserialize()
          {abstract} + getSourceOutputStream()
          {abstract} + setSourceOutputStream()
      }
    }
  }
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      interface fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.ImageStreamingSerializer {
          {abstract} + getSerializingStream()
          {abstract} + getSourceInputStream()
          {abstract} + serialize()
      }
    }
  }
  namespace fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming {
    namespace serializer {
      interface fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.MetadataDeserializer {
          {abstract} + deserialize()
      }
    }
  }
  fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.AbstractStreamingImageSerializer .up.|> fr.cnam.foad.nfa035.badges.wallet.fileutils.streaming.serializer.ImageStreamingSerializer
@enduml