Interface AttributeOrAttributeValue<A>

All Known Subinterfaces:
AttributeValue
All Known Implementing Classes:
Address, Attribute, AuthenticationSessionAttribute, AuthorizationActionAttributes, AuthorizationResourceAttributes, BinaryAttributeValue, ComplexAttribute, ComplexAttributeValue, ContextAttributes, Device, Email, Entitlement, GraphQLAuthorizationActionAttributes, GraphQLAuthorizationResourceAttributes, Group, InstantMessaging, LinkedAccount, ListAttributeValue, MapAttributeValue, Meta, MultiValuedAttributeValue, Name, NullAttributeValue, OAuthAuthorizationActionAttributes, OAuthAuthorizationResourceAttributes, PhoneNumber, Photo, PrimitiveAttributeValue, PrimitiveAttributeValue.StringAttributeValue, Role, ScimAuthorizationActionAttributes, ScimAuthorizationResourceAttributes, SubjectAttributes, X509Certificates

public interface AttributeOrAttributeValue<A>
Most generic type of the attributes framework.

As attributes and their values form a complex tree structure, it is very useful to be able to implement recursive tree algorithms which can act on both Attribute and AttributeValue instances, uniformly. This type is necessary for that to be possible.

  • Method Details

    • withoutIndexOnPath

      static String withoutIndexOnPath(String path)
      Parameters:
      path - of an attribute
      Returns:
      the equivalent path, but without any indexes that may be added when mapping over multi-valued attributes.
    • map

      Apply the provided transformation on each Attribute and AttributeValue in this attribute tree, recursively.
      Parameters:
      path - of the current attribute or value being transformed.
      transform - transformation function.
      Returns:
      the transformed attribute or value
    • getValue

      Returns:
      the value of this entity.
    • getValueWithMetadata

      @Nullable @Nullable Object getValueWithMetadata()
      Returns:
      the value of this entity, including any metadata it might have.