# Package org.keycloak.storage.adapter

- Class Summary
  Class | Description
  --- | ---
  AbstractUserAdapter | This abstract class provides implementations for everything but getUsername().
  AbstractUserAdapter.Streams | The `AbstractUserAdapter.Streams` class extends the `AbstractUserAdapter` abstract class and implements the `UserModel.Streams` interface, allowing subclasses to focus on the implementation of the `Stream`-based query methods and providing default implementations for the collections-based variants that delegate to their `Stream` counterparts.
  AbstractUserAdapterFederatedStorage | Assumes everything is managed by federated storage except for username.
  AbstractUserAdapterFederatedStorage.Streams | The `AbstractUserAdapterFederatedStorage.Streams` class extends the `AbstractUserAdapterFederatedStorage` abstract class and implements the `UserModel.Streams` interface, allowing subclasses to focus on the implementation of the `Stream`-based query methods and providing default implementations for the collections-based variants that delegate to their `Stream` counterparts.
  InMemoryUserAdapter |
  UpdateOnlyChangeUserModelDelegate | This will perform update operation for particular attribute/property just if the existing value is not already same.

Copyright © 2021 JBoss by Red Hat. All rights reserved.