Package net.shibboleth.idp.attribute.resolver.ad.mapped.impl

# Class MappedAttributeDefinition

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
net.shibboleth.idp.attribute.resolver.AbstractResolverPlugin<IdPAttribute>
net.shibboleth.idp.attribute.resolver.AbstractAttributeDefinition
net.shibboleth.idp.attribute.resolver.ad.mapped.impl.MappedAttributeDefinition

All Implemented Interfaces:
  `AttributeDefinition`, `ResolverPlugin<IdPAttribute>`, `Component`, `DestructableComponent`, `IdentifiableComponent`, `IdentifiedComponent`, `InitializableComponent`, `UnmodifiableComponent`, `DisposableBean`

@ThreadSafe public class MappedAttributeDefinition extends AbstractAttributeDefinition
Implementation of Mapped Attributes.

An attribute definition that takes the values from previous resolution stages and converts them as it creates the output attribute. Each value is compared with a lookup table (a `Collection` of @link{ValueMap}s) and if it matches then the appropriate value(s) is/are substituted. Non matches are either passed through or are removed depending on the setting 'passThru'.

## Field Summary

Fields
Modifier and Type
Field
Description
`private StringAttributeValue`
`defaultValue`
Default return value.
`private final org.slf4j.Logger`
`log`
Class logger.
`private boolean`
`passThru`
Whether the definition passes thru unmatched values.
`private Set<ValueMap>`
`valueMaps`
Value maps.

## Constructor Summary

Constructors
Constructor
Description
`MappedAttributeDefinition()`

## Method Summary

Modifier and Type
Method
Description
`protected IdPAttribute`
`doAttributeDefinitionResolve(AttributeResolutionContext resolutionContext, AttributeResolverWorkContext workContext)`
Creates and populates the values for the resolved attribute.
`protected void`
`doInitialize()`
`StringAttributeValue`
`getDefaultAttributeValue()`
Gets the default return value.
`String`
`getDefaultValue()`
Gets the default return value.
`Collection<ValueMap>`
`getValueMaps()`
Gets the functions used to map an input value to an output value.
`boolean`
`isPassThru()`
Gets whether the definition passes unmatched values through.
`protected List<StringAttributeValue>`
`mapValue(String value)`
Maps the value from a dependency in to the value(s) for this attribute.
`void`
`setDefaultValue(String newDefaultValue)`
Sets the default return value.
`void`
`setPassThru(boolean newPassThru)`
Sets whether the definition passes unmatched values through.
`void`
`setValueMaps(Collection<ValueMap> mappings)`
Sets the functions used to map an input value to an output value.

### Methods inherited from class net.shibboleth.idp.attribute.resolver.AbstractAttributeDefinition

`doResolve, getLogPrefix, isDependencyOnly, isPreRequested, setDependencyOnly, setPreRequested`

### Methods inherited from class net.shibboleth.idp.attribute.resolver.AbstractResolverPlugin

`doDestroy, equals, getActivationCondition, getAttributeDependencies, getDataConnectorDependencies, hashCode, isPropagateResolutionExceptions, resolve, setActivationCondition, setAttributeDependencies, setDataConnectorDependencies, setPropagateResolutionExceptions`

### Methods inherited from class net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent

`setId`

### Methods inherited from class net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent

`ensureId, getId, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.DestructableComponent

`destroy, isDestroyed`

### Methods inherited from interface org.springframework.beans.factory.DisposableBean

`destroy`

### Methods inherited from interface net.shibboleth.shared.component.IdentifiedComponent

`getId`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

### Methods inherited from interface net.shibboleth.idp.attribute.resolver.ResolverPlugin

`getActivationCondition, getAttributeDependencies, getDataConnectorDependencies, isPropagateResolutionExceptions, resolve`

## Field Details

### log

@Nonnull private final org.slf4j.Logger log
Class logger.

### valueMaps

@Nonnull private Set<ValueMap> valueMaps
Value maps.

### passThru

private boolean passThru
Whether the definition passes thru unmatched values.

### defaultValue

@Nullable private StringAttributeValue defaultValue
Default return value.

## Constructor Details

### MappedAttributeDefinition

public MappedAttributeDefinition()

## Method Details

### getValueMaps

@Nonnull @Unmodifiable @NotLive public Collection<ValueMap> getValueMaps()
Gets the functions used to map an input value to an output value.

Returns:
  functions used to map an input value to an output value

### setValueMaps

public void setValueMaps(@Nullable Collection<ValueMap> mappings)
Sets the functions used to map an input value to an output value.

Parameters:
  `mappings` - functions used to map an input value to an output value

### getDefaultAttributeValue

@Nullable public StringAttributeValue getDefaultAttributeValue()
Gets the default return value.

Returns:
  the default return value.

### getDefaultValue

@Nullable public String getDefaultValue()
Gets the default return value.

Returns:
  the default return value.

### setDefaultValue

public void setDefaultValue(@Nullable String newDefaultValue)
Sets the default return value.

Parameters:
  `newDefaultValue` - the default return value

### isPassThru

public boolean isPassThru()
Gets whether the definition passes unmatched values through.

Returns:
  whether the definition passes unmatched values unchanged or suppresses them.

### setPassThru

public void setPassThru(boolean newPassThru)
Sets whether the definition passes unmatched values through.

Parameters:
  `newPassThru` - whether the definition passes unmatched values unchanged or suppresses them.

### mapValue

@Nonnull @Live protected List<StringAttributeValue> mapValue(@Nullable String value)
Maps the value from a dependency in to the value(s) for this attribute.

Parameters:
  `value` - the value from the dependency
Returns:
  the set of attribute values that the given dependency value maps in to

### doAttributeDefinitionResolve

@Nullable protected IdPAttribute doAttributeDefinitionResolve(@Nonnull AttributeResolutionContext resolutionContext, @Nonnull AttributeResolverWorkContext workContext) throws ResolutionException
Creates and populates the values for the resolved attribute. Implementations should not set, or otherwise manage, the resolved attribute's display name, description or encoders. Nor should the resultant attribute be recorded in the given resolution context.

Specified by:
  `doAttributeDefinitionResolve` in class `AbstractAttributeDefinition`
Parameters:
  `resolutionContext` - current attribute resolution context
  `workContext` - current resolver work context
Returns:
  resolved attribute or null if nothing to resolve.
Throws:
  `ResolutionException` - thrown if there is a problem resolving and creating the attribute

### doInitialize

protected void doInitialize() throws ComponentInitializationException

Overrides:
  `doInitialize` in class `AbstractAttributeDefinition`
Throws:
  `ComponentInitializationException`