# Hierarchy For All Packages

Package Hierarchies:

- io.axoniq.dataprotection.api,
- io.axoniq.dataprotection.cryptoengine,
- io.axoniq.dataprotection.cryptoengine.jpa,
- io.axoniq.dataprotection.cryptoengine.vault,
- io.axoniq.dataprotection.serialization,
- io.axoniq.dataprotection.serialization.converters,
- io.axoniq.dataprotection.serialization.json,
- io.axoniq.dataprotection.serialization.xml

## Class Hierarchy

- java.lang.Object
  - io.axoniq.dataprotection.serialization.AbstractXStreamSerializer (implements io.axoniq.dataprotection.serialization.Serializer)
    - io.axoniq.dataprotection.serialization.xml.XStreamSerializer
  - io.axoniq.dataprotection.serialization.AnnotationRevisionResolver (implements io.axoniq.dataprotection.serialization.RevisionResolver)
  - io.axoniq.dataprotection.serialization.converters.BlobToInputStreamConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.converters.ByteArrayToInputStreamConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.json.ByteArrayToJsonNodeConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.converters.ByteArrayToStringConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.CachingSupplier<T> (implements java.io.Serializable, java.util.function.Supplier<T>)
  - io.axoniq.dataprotection.serialization.ChainedConverter<S,​T> (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.ChainingConverter (implements io.axoniq.dataprotection.serialization.Converter)
  - io.axoniq.dataprotection.serialization.xml.CompactDriver (implements com.thoughtworks.xstream.io.HierarchicalStreamDriver)
  - io.axoniq.dataprotection.cryptoengine.DatabaseBackedCryptoEngine (implements io.axoniq.dataprotection.cryptoengine.CryptoEngine)
    - io.axoniq.dataprotection.cryptoengine.InMemoryCryptoEngine
    - io.axoniq.dataprotection.cryptoengine.JdbcCryptoEngine
    - io.axoniq.dataprotection.cryptoengine.jpa.JpaCryptoEngine
    - io.axoniq.dataprotection.cryptoengine.vault.VaultCryptoEngine
  - io.axoniq.dataprotection.cryptoengine.jpa.DefaultKeyEntity (implements io.axoniq.dataprotection.cryptoengine.jpa.KeyEntity)
  - io.axoniq.dataprotection.serialization.xml.Dom4JToByteArrayConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.api.FieldEncrypter
  - io.axoniq.dataprotection.api.FieldEncryptingSerializer (implements io.axoniq.dataprotection.serialization.Serializer)
  - io.axoniq.dataprotection.serialization.FixedValueRevisionResolver (implements io.axoniq.dataprotection.serialization.RevisionResolver)
  - io.axoniq.dataprotection.serialization.converters.InputStreamToByteArrayConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.xml.InputStreamToDom4jConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.xml.InputStreamToXomConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.json.JacksonSerializer (implements io.axoniq.dataprotection.serialization.Serializer)
  - io.axoniq.dataprotection.cryptoengine.JavaKeyStoreCryptoEngine (implements io.axoniq.dataprotection.cryptoengine.CryptoEngine)
    - io.axoniq.dataprotection.cryptoengine.PKCS11CryptoEngine
  - io.axoniq.dataprotection.serialization.JavaSerializer (implements io.axoniq.dataprotection.serialization.Serializer)
  - io.axoniq.dataprotection.serialization.json.JsonNodeToByteArrayConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - io.axoniq.dataprotection.serialization.MavenArtifactRevisionResolver (implements io.axoniq.dataprotection.serialization.RevisionResolver)
  - io.axoniq.dataprotection.api.ReplacementValueProvider
  - io.axoniq.dataprotection.serialization.SerialVersionUIDRevisionResolver (implements io.axoniq.dataprotection.serialization.RevisionResolver)
  - io.axoniq.dataprotection.serialization.SimpleSerializedObject<T> (implements io.axoniq.dataprotection.serialization.SerializedObject<T>)
  - io.axoniq.dataprotection.serialization.SimpleSerializedType (implements io.axoniq.dataprotection.serialization.SerializedType)
  - io.axoniq.dataprotection.serialization.converters.StringToByteArrayConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.io.IOException
        - io.axoniq.dataprotection.cryptoengine.vault.PermissionDeniedException
      - java.lang.RuntimeException
        - io.axoniq.dataprotection.serialization.CannotConvertBetweenTypesException
        - io.axoniq.dataprotection.api.ConfigurationException
        - io.axoniq.dataprotection.api.DataException
        - io.axoniq.dataprotection.serialization.SerializationException
        - io.axoniq.dataprotection.serialization.UnknownSerializedTypeException
  - io.axoniq.dataprotection.serialization.xml.XomToStringConverter (implements io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>)

## Interface Hierarchy

- io.axoniq.dataprotection.serialization.ContentTypeConverter<S,​T>
- io.axoniq.dataprotection.serialization.Converter
- io.axoniq.dataprotection.cryptoengine.CryptoEngine
- io.axoniq.dataprotection.cryptoengine.jpa.KeyEntity
- io.axoniq.dataprotection.serialization.RevisionResolver
- io.axoniq.dataprotection.serialization.SerializedObject<T>
- io.axoniq.dataprotection.serialization.SerializedType
- io.axoniq.dataprotection.serialization.Serializer

## Annotation Type Hierarchy

- io.axoniq.dataprotection.api.DataSubjectId (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.api.DataSubjectIdContainer (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.api.DeepPersonalData (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.api.DeepPersonalDataContainer (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.api.PersonalData (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.api.PersonalDataContainer (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.api.PersonalDataType (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.serialization.Revision (implements java.lang.annotation.Annotation)
- io.axoniq.dataprotection.api.SerializedPersonalData (implements java.lang.annotation.Annotation)

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - io.axoniq.dataprotection.cryptoengine.KeyType
    - io.axoniq.dataprotection.api.Scope