Class AbstractPartialImport<T>

java.lang.Object
org.keycloak.partialimport.AbstractPartialImport<T>
All Implemented Interfaces:
PartialImport<T>
Direct Known Subclasses:
ClientsPartialImport, GroupsPartialImport, IdentityProviderMappersPartialImport, IdentityProvidersPartialImport, RealmRolesPartialImport, UsersPartialImport

public abstract class AbstractPartialImport<T> extends Object implements PartialImport<T>
Base PartialImport for most resource types.
Author:
Stan Silvert ssilvert@redhat.com (C) 2016 Red Hat Inc.
  • Field Details

    • toOverwrite

      protected final Set<T> toOverwrite
    • toSkip

      protected final Set<T> toSkip
  • Constructor Details

    • AbstractPartialImport

      public AbstractPartialImport()
  • Method Details

    • getRepList

      public abstract List<T> getRepList(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep)
    • getName

      public abstract String getName(T resourceRep)
    • getModelId

      public abstract String getModelId(RealmModel realm, KeycloakSession session, T resourceRep)
    • exists

      public abstract boolean exists(RealmModel realm, KeycloakSession session, T resourceRep)
    • existsMessage

      public abstract String existsMessage(RealmModel realm, T resourceRep)
    • getResourceType

      public abstract ResourceType getResourceType()
    • remove

      public abstract void remove(RealmModel realm, KeycloakSession session, T resourceRep)
    • create

      public abstract void create(RealmModel realm, KeycloakSession session, T resourceRep)
    • prepare

      public void prepare(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
      Description copied from interface: PartialImport
      Find which resources will need to be skipped or overwritten. Also, do a preliminary check for errors.
      Specified by:
      prepare in interface PartialImport<T>
      Parameters:
      partialImportRep - Everything in the PartialImport request.
      realm - Realm to be imported into.
      session - The KeycloakSession.
    • existsError

      protected ErrorResponseException existsError(String message)
    • overwritten

      protected PartialImportResult overwritten(String modelId, T resourceRep)
    • skipped

      protected PartialImportResult skipped(String modelId, T resourceRep)
    • added

      protected PartialImportResult added(String modelId, T resourceRep)
    • removeOverwrites

      public void removeOverwrites(RealmModel realm, KeycloakSession session)
      Description copied from interface: PartialImport
      Delete resources that will be overwritten. This is done separately so that it can be called for all resource types before calling all the doImports. It was found that doing delete/add per resource causes errors because of cascading deletes.
      Specified by:
      removeOverwrites in interface PartialImport<T>
      Parameters:
      realm - Realm to be imported into.
      session - The KeycloakSession
    • doImport

      public PartialImportResults doImport(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep, RealmModel realm, KeycloakSession session)
      Description copied from interface: PartialImport
      Create (or re-create) all the imported resources.
      Specified by:
      doImport in interface PartialImport<T>
      Parameters:
      partialImportRep - Everything in the PartialImport request.
      realm - Realm to be imported into.
      session - The KeycloakSession.
      Returns:
      The final results of the PartialImport request.