Package com.evolveum.midpoint.schema
Class CapabilityUtil
java.lang.Object
com.evolveum.midpoint.schema.CapabilityUtil
Various useful methods related to capabilities.
 Notes:
 - To minimize confusion, the term "effective" has been removed from the methods' names, as it somehow implied that
 the capability in question is enabled. We now use either names without adjective (like 
getCapability(CapabilitiesType, Class)) or explicitly mention "enabled" if enabled capabilities are to be returned, like
 getEnabledActivationStatus(ActivationCapabilityType).- Author:
- semancik
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic @NotNull CapabilityCollectionTypecreateCapabilityCollection(@NotNull List<CapabilityType> capabilities) CreatesCapabilityCollectionTypefrom a plain list of capabilities.static voidfillDefaults(@NotNull CapabilityType capability) TODO what's the use of this method?static @NotNull List<CapabilityType>getAllCapabilities(@Nullable CapabilityCollectionType capabilityCollection) Returns all the capabilities from particularCapabilityCollectionType.static @NotNull List<CapabilityType>getCapabilities(@Nullable CapabilitiesType capabilities, boolean includeDisabled) Returns a combination of native and configured capabilities from givenCapabilitiesTypebean.static <T extends CapabilityType>
 TgetCapability(@NotNull ResourceType resource, @NotNull Class<T> capabilityClass) static <T extends CapabilityType>
 TgetCapability(@NotNull ResourceType resource, @Nullable ResourceObjectDefinition objectDefinition, @NotNull Class<T> capabilityClass) Gets a specific capability from resource/connectors/object-class.static <T extends CapabilityType>
 TgetCapability(@NotNull ResourceType resource, @Nullable CapabilityCollectionType specificObjectTypeOrClassCapabilities, @NotNull Class<T> capabilityClass) static <T extends CapabilityType>
 TgetCapability(@NotNull List<CapabilityCollectionType> capabilityCollectionsList, @NotNull Class<T> capabilityClass) Returns the first matching capability in given list of capability collections.static <T extends CapabilityType>
 TgetCapability(@Nullable CapabilitiesType capabilities, @NotNull Class<T> capabilityClass) Selects a matching capability: 1. first from configured capabilities, 2. if not present, then from native capabilities.static <T extends CapabilityType>
 TgetCapability(@Nullable CapabilityCollectionType capabilityCollection, @NotNull Class<T> capabilityClass) Selects a capability of given type from aCapabilityCollectionType.static StringgetCapabilityDisplayName(@NotNull CapabilityType capability) AsgetEnabledActivationLockoutStatus(ActivationCapabilityType)but checks also if the "root" capability is enabled.AsgetEnabledActivationStatus(ActivationCapabilityType)but checks also if the "root" capability is enabled.static <T extends CapabilityType>
 TgetEnabledCapability(@NotNull ResourceType resource, @Nullable ResourceObjectDefinition objectDefinition, @NotNull Class<T> capabilityClass) static <T extends CapabilityType>
 TgetEnabledOrNull(T capability) static @Nullable PasswordCapabilityTypegetEnabledPasswordCapability(CredentialsCapabilityType credentialsCapability) static Collection<Class<? extends CapabilityType>>getNativeCapabilityClasses(@Nullable CapabilitiesType capabilities) Returns a set of classes of native capabilities.static booleanstatic booleanisActivationStatusCapabilityEnabled(@NotNull ResourceType resource, @Nullable ResourceObjectDefinition objectDefinition) static booleanstatic booleanstatic booleanstatic booleanisCapabilityEnabled(@Nullable CapabilityType capability) static booleanisEmpty(CapabilityCollectionType capabilities) Normally, `null` and empty states are substantially different: the former means "unknown", the latter "none".static booleanisEnabled(CapabilityType cap) static booleanstatic booleanisPasswordReadable(CredentialsCapabilityType credentialsCapability) static booleanisPasswordReturnedByDefault(CredentialsCapabilityType credentialsCapability) static booleanisProvidedNatively(ActivationLockoutStatusCapabilityType lockoutStatusCap) static booleanisProvidedNatively(ActivationStatusCapabilityType statusCapability) static booleanisProvidedNatively(LastLoginTimestampCapabilityType lastLoginTimestampCap) static booleanisReadingCachingOnly(@NotNull ResourceType resource, @Nullable ResourceObjectDefinition objectDefinition) static intsize(CapabilityCollectionType capabilities) 
- 
Constructor Details- 
CapabilityUtilpublic CapabilityUtil()
 
- 
- 
Method Details- 
getCapability@Nullable public static <T extends CapabilityType> T getCapability(@Nullable @Nullable CapabilityCollectionType capabilityCollection, @NotNull @NotNull Class<T> capabilityClass) Selects a capability of given type from aCapabilityCollectionType. NOTE: Instead of calling this method with a specific capabilityClass, it is now easier to simply call the appropriate getter method on theCapabilityCollectionType(after a non-null check).- Throws:
- IllegalArgumentException- in the case of ambiguity, because this means that either the capabilityClass is too "wide", and matches multiple capabilities. Or the capabilityCollection is malformed, and contains multiple values of the given capability type. (Although this is currently not possible according to the schema.)
 
- 
getCapability@Nullable public static <T extends CapabilityType> T getCapability(@NotNull @NotNull List<CapabilityCollectionType> capabilityCollectionsList, @NotNull @NotNull Class<T> capabilityClass) Returns the first matching capability in given list of capability collections.
- 
getCapability@Nullable public static <T extends CapabilityType> T getCapability(@Nullable @Nullable CapabilitiesType capabilities, @NotNull @NotNull Class<T> capabilityClass) Selects a matching capability: 1. first from configured capabilities, 2. if not present, then from native capabilities.
- 
getAllCapabilities@NotNull public static @NotNull List<CapabilityType> getAllCapabilities(@Nullable @Nullable CapabilityCollectionType capabilityCollection) Returns all the capabilities from particularCapabilityCollectionType.
- 
getCapabilities@NotNull public static @NotNull List<CapabilityType> getCapabilities(@Nullable @Nullable CapabilitiesType capabilities, boolean includeDisabled) Returns a combination of native and configured capabilities from givenCapabilitiesTypebean.- Parameters:
- includeDisabled- Whether we want to obtain also capabilities with `enabled` set to `false`.
 
- 
isCapabilityEnabled
- 
getEnabledOrNull
- 
getCapabilityDisplayName
- 
getEnabledPasswordCapability@Nullable public static @Nullable PasswordCapabilityType getEnabledPasswordCapability(CredentialsCapabilityType credentialsCapability) 
- 
isPasswordReturnedByDefault
- 
isPasswordReadable
- 
isActivationStatusReturnedByDefault
- 
isActivationLockoutStatusReturnedByDefaultpublic static boolean isActivationLockoutStatusReturnedByDefault(ActivationCapabilityType capability) 
- 
isActivationValidFromReturnedByDefault
- 
isActivationValidToReturnedByDefault
- 
isLastLoginTimestampReturnedByDefault
- 
getNativeCapabilityClassespublic static Collection<Class<? extends CapabilityType>> getNativeCapabilityClasses(@Nullable @Nullable CapabilitiesType capabilities) Returns a set of classes of native capabilities.
- 
fillDefaultsTODO what's the use of this method? It is currently called only from the Resource wizard. We should perhaps delete it.
- 
getEnabledActivationStatuspublic static ActivationStatusCapabilityType getEnabledActivationStatus(ActivationCapabilityType act) 
- 
getEnabledActivationStatusStrictpublic static ActivationStatusCapabilityType getEnabledActivationStatusStrict(ActivationCapabilityType act) AsgetEnabledActivationStatus(ActivationCapabilityType)but checks also if the "root" capability is enabled.
- 
isEnabled
- 
getEnabledLastLoginCapabilityStrictpublic static LastLoginTimestampCapabilityType getEnabledLastLoginCapabilityStrict(BehaviorCapabilityType act) 
- 
getEnabledActivationValidFrompublic static ActivationValidityCapabilityType getEnabledActivationValidFrom(ActivationCapabilityType act) 
- 
getEnabledActivationValidTopublic static ActivationValidityCapabilityType getEnabledActivationValidTo(ActivationCapabilityType act) 
- 
getEnabledActivationLockoutStatuspublic static ActivationLockoutStatusCapabilityType getEnabledActivationLockoutStatus(ActivationCapabilityType act) 
- 
getEnabledActivationLockoutStrictpublic static ActivationLockoutStatusCapabilityType getEnabledActivationLockoutStrict(ActivationCapabilityType act) AsgetEnabledActivationLockoutStatus(ActivationCapabilityType)but checks also if the "root" capability is enabled.
- 
createCapabilityCollection@NotNull public static @NotNull CapabilityCollectionType createCapabilityCollection(@NotNull @NotNull List<CapabilityType> capabilities) CreatesCapabilityCollectionTypefrom a plain list of capabilities. TODO consider whether we shouldn't return `null` if the list is empty.
- 
isEmptyNormally, `null` and empty states are substantially different: the former means "unknown", the latter "none". So this method should be used only for testing, e.g. to check that there are _some_ capabilities present.
- 
size
- 
getCapabilitypublic static <T extends CapabilityType> T getCapability(@NotNull @NotNull ResourceType resource, @NotNull @NotNull Class<T> capabilityClass) 
- 
getCapabilitypublic static <T extends CapabilityType> T getCapability(@NotNull @NotNull ResourceType resource, @Nullable @Nullable ResourceObjectDefinition objectDefinition, @NotNull @NotNull Class<T> capabilityClass) Gets a specific capability from resource/connectors/object-class. Notes: - Resource vs connector: The capability from specific connector is used only if it's enabled. TODO allow configured capabilities also for refined object classes
- 
getCapabilitypublic static <T extends CapabilityType> T getCapability(@NotNull @NotNull ResourceType resource, @Nullable @Nullable CapabilityCollectionType specificObjectTypeOrClassCapabilities, @NotNull @NotNull Class<T> capabilityClass) 
- 
isReadingCachingOnlypublic static boolean isReadingCachingOnly(@NotNull @NotNull ResourceType resource, @Nullable @Nullable ResourceObjectDefinition objectDefinition) 
- 
getEnabledCapabilitypublic static <T extends CapabilityType> T getEnabledCapability(@NotNull @NotNull ResourceType resource, @Nullable @Nullable ResourceObjectDefinition objectDefinition, @NotNull @NotNull Class<T> capabilityClass) 
- 
isActivationStatusCapabilityEnabledpublic static boolean isActivationStatusCapabilityEnabled(@NotNull @NotNull ResourceType resource, @Nullable @Nullable ResourceObjectDefinition objectDefinition) 
- 
isProvidedNatively
- 
isProvidedNatively
- 
isProvidedNatively
 
-