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 Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Set<T>
     
    protected final Set<T>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.keycloak.partialimport.PartialImportResult
    added(String modelId, T resourceRep)
     
    abstract void
    create(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
     
    org.keycloak.partialimport.PartialImportResults
    doImport(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep, org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session)
    Create (or re-create) all the imported resources.
    abstract boolean
    exists(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
     
     
    abstract String
    existsMessage(org.keycloak.models.RealmModel realm, T resourceRep)
     
    abstract String
    getModelId(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
     
    abstract String
    getName(T resourceRep)
     
    abstract List<T>
    getRepList(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep)
     
    abstract org.keycloak.partialimport.ResourceType
     
    protected org.keycloak.partialimport.PartialImportResult
    overwritten(String modelId, T resourceRep)
     
    void
    prepare(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep, org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session)
    Find which resources will need to be skipped or overwritten.
    abstract void
    remove(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
     
    void
    removeOverwrites(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session)
    Delete resources that will be overwritten.
    protected org.keycloak.partialimport.PartialImportResult
    skipped(String modelId, T resourceRep)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
    • exists

      public abstract boolean exists(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
    • existsMessage

      public abstract String existsMessage(org.keycloak.models.RealmModel realm, T resourceRep)
    • getResourceType

      public abstract org.keycloak.partialimport.ResourceType getResourceType()
    • remove

      public abstract void remove(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
    • create

      public abstract void create(org.keycloak.models.RealmModel realm, org.keycloak.models.KeycloakSession session, T resourceRep)
    • prepare

      public void prepare(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep, org.keycloak.models.RealmModel realm, org.keycloak.models.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 org.keycloak.partialimport.PartialImportResult overwritten(String modelId, T resourceRep)
    • skipped

      protected org.keycloak.partialimport.PartialImportResult skipped(String modelId, T resourceRep)
    • added

      protected org.keycloak.partialimport.PartialImportResult added(String modelId, T resourceRep)
    • removeOverwrites

      public void removeOverwrites(org.keycloak.models.RealmModel realm, org.keycloak.models.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 org.keycloak.partialimport.PartialImportResults doImport(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep, org.keycloak.models.RealmModel realm, org.keycloak.models.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.