Package net.shibboleth.idp.authn.principal

# Interface PrincipalSerializer<Type>

Type Parameters:
  `Type` - the type of object handled

All Superinterfaces:
  `Component`, `InitializableComponent`

All Known Implementing Classes:
  `AbstractPrincipalSerializer`, `AuthenticationResultPrincipalSerializer`, `GenericPrincipalSerializer`, `IdPAttributePrincipalSerializer`, `LDAPPrincipalSerializer`, `NameIDPrincipalSerializer`, `ProxyAuthenticationPrincipalSerializer`, `SealedPrincipalSerializer`, `SimplePrincipalSerializer`, `X500PrincipalSerializer`

public interface PrincipalSerializer<Type> extends InitializableComponent
Interface for the serialization/deserialization of principals.

## Method Summary

Modifier and Type
Method
Description
`Principal`
`deserialize(Type value)`
Deserialize the supplied value.
`Type`
`serialize(Principal principal)`
Serialize the supplied principal.
`boolean`
`supports(Principal principal)`
Whether the supplied principal can be serialized.
`boolean`
`supports(Type value)`
Whether the supplied value can be deserialized.

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

`initialize, isInitialized`

## Method Details

### supports

boolean supports(@Nonnull Principal principal)
Whether the supplied principal can be serialized.

Parameters:
  `principal` - to examine
Returns:
  whether principal can be serialized

### serialize

@Nonnull @NotEmpty Type serialize(@Nonnull Principal principal) throws IOException
Serialize the supplied principal.

Parameters:
  `principal` - to serialize
Returns:
  serialized value
Throws:
  `IOException` - if an error occurs during serialization

### supports

boolean supports(@Nonnull Type value)
Whether the supplied value can be deserialized.

Parameters:
  `value` - to examine
Returns:
  whether value can be deserialized

### deserialize

@Nullable Principal deserialize(@Nonnull Type value) throws IOException
Deserialize the supplied value.

Parameters:
  `value` - to deserialize
Returns:
  principal
Throws:
  `IOException` - if an error occurs during deserialization