Class AbstractPartialImport<T>

    • Field Detail

      • toOverwrite

        protected final Set<T> toOverwrite
      • toSkip

        protected final Set<T> toSkip
    • Constructor Detail

      • AbstractPartialImport

        public AbstractPartialImport()
    • Method Detail

      • 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 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)
                     throws ErrorResponseException
        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.
        Throws:
        ErrorResponseException - If the PartialImport can not be performed, throw this exception.
      • 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 PartialImportResults doImport​(org.keycloak.representations.idm.PartialImportRepresentation partialImportRep,
                                             org.keycloak.models.RealmModel realm,
                                             org.keycloak.models.KeycloakSession session)
                                      throws ErrorResponseException
        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.
        Throws:
        ErrorResponseException - if an error was detected trying to doImport a resource.