Package org.opensaml.saml.saml2.metadata.impl

# Class RoleDescriptorImpl

java.lang.Object
org.opensaml.core.xml.AbstractXMLObject
org.opensaml.xmlsec.signature.AbstractSignableXMLObject
org.opensaml.saml.common.AbstractSignableSAMLObject
org.opensaml.saml.saml2.metadata.impl.RoleDescriptorImpl

All Implemented Interfaces:
  `AttributeExtensibleXMLObject`, `XMLObject`, `SAMLObject`, `SignableSAMLObject`, `CacheableSAMLObject`, `TimeBoundSAMLObject`, `RoleDescriptor`, `SignableXMLObject`

Direct Known Subclasses:
  `AttributeAuthorityDescriptorImpl`, `AuthnAuthorityDescriptorImpl`, `PDPDescriptorImpl`, `QueryDescriptorTypeImpl`, `SSODescriptorImpl`

public abstract class RoleDescriptorImpl extends AbstractSignableSAMLObject implements RoleDescriptor
Concrete implementation of `RoleDescriptor`.

## Field Summary

Fields
Modifier and Type
Field
Description
`private Duration`
`cacheDuration`
cacheDurection attribute.
`private final XMLObjectChildrenList<ContactPerson>`
`contactPersons`
Contact persons for this role.
`private String`
`errorURL`
Error URL.
`private Extensions`
`extensions`
Extensions child.
`private String`
`id`
ID attribute.
`private final XMLObjectChildrenList<KeyDescriptor>`
`keyDescriptors`
Key descriptors for this role.
`private Organization`
`organization`
Organization administering this role.
`private final List<String>`
`supportedProtocols`
Set of supported protocols.
`private final AttributeMap`
`unknownAttributes`
"anyAttribute" attributes.
`private Instant`
`validUntil`
validUntil attribute.

### Fields inherited from interface org.opensaml.saml.saml2.common.CacheableSAMLObject

`CACHE_DURATION_ATTRIB_NAME, CACHE_DURATION_ATTRIB_QNAME`

### Fields inherited from interface org.opensaml.saml.saml2.metadata.RoleDescriptor

`DEFAULT_ELEMENT_LOCAL_NAME, DEFAULT_ELEMENT_NAME, ERROR_URL_ATTRIB_NAME, ID_ATTRIB_NAME, PROTOCOL_ENUMERATION_ATTRIB_NAME, TYPE_LOCAL_NAME, TYPE_NAME`

### Fields inherited from interface org.opensaml.saml.saml2.common.TimeBoundSAMLObject

`VALID_UNTIL_ATTRIB_NAME, VALID_UNTIL_ATTRIB_QNAME`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`RoleDescriptorImpl(String namespaceURI, String elementLocalName, String namespacePrefix)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`addSupportedProtocol(String protocol)`
Adds a protocol to the list of supported protocols for this role.
`Duration`
`getCacheDuration()`
Gets the maximum time that this descriptor should be cached.
`List<ContactPerson>`
`getContactPersons()`
Gets list of `ContactPerson`s for this role.
`String`
`getErrorURL()`
Gets the URI users should be sent to in the event of an error.
`Extensions`
`getExtensions()`
Gets the Extensions child of this object.
`String`
`getID()`
Gets the ID of this role descriptor.
`List<KeyDescriptor>`
`getKeyDescriptors()`
Gets the key descriptors for this role.
`List<XMLObject>`
`getOrderedChildren()`
Gets an unmodifiable list of child elements in the order that they will appear in the DOM.
`Organization`
`getOrganization()`
Gets the organization responsible for this role.
`String`
`getSignatureReferenceID()`
Gets the value of the ID attribute for this SAML object which will be used as its signature reference.
`List<String>`
`getSupportedProtocols()`
Gets an immutable list of protocol URIs supported by this role.
`AttributeMap`
`getUnknownAttributes()`
Gets a mutable map of the attributes.
`Instant`
`getValidUntil()`
Gets the date until which this descriptor is valid.
`boolean`
`isSupportedProtocol(String protocol)`
Chckes to see if the given protocol is supported by this role.
`boolean`
`isValid()`
Checks to see if the current time is past the validUntil time.
`void`
`removeAllSupportedProtocols()`
Removes all the supported protocols from this role.
`void`
`removeSupportedProtocol(String protocol)`
Removes a protocol to the list of supported protocols for this role.
`void`
`removeSupportedProtocols(Collection<String> protocols)`
Removes a list of protocols to the list of supported protocols for this role.
`void`
`setCacheDuration(Duration duration)`
Sets the maximum time that this descriptor should be cached.
`void`
`setErrorURL(String url)`
Sets the URI users should be sent to in the event of an error.
`void`
`setExtensions(Extensions ext)`
Sets the Extensions child of this object.
`void`
`setID(String newID)`
Sets the ID of this role descriptor.
`void`
`setOrganization(Organization org)`
Sets the organization responsible for this role.
`void`
`setValidUntil(Instant dt)`
Sets the date until which this descriptor is valid.

### Methods inherited from class org.opensaml.saml.common.AbstractSignableSAMLObject

`equals, hashCode, setSignature`

### Methods inherited from class org.opensaml.xmlsec.signature.AbstractSignableXMLObject

`getSignature, isSigned`

### Methods inherited from class org.opensaml.core.xml.AbstractXMLObject

`detach, ensureDOM, getDOM, getElementQName, getIDIndex, getNamespaceManager, getNamespaces, getNoNamespaceSchemaLocation, getObjectMetadata, getParent, getSchemaLocation, getSchemaType, hasChildren, hasParent, isNil, isNilXSBoolean, manageQualifiedAttributeNamespace, prepareAttributeValueForAssignment, prepareElementContentForAssignment, prepareForAssignment, prepareForAssignment, prepareForAssignment, registerOwnID, releaseChildrenDOM, releaseDOM, releaseParentDOM, releaseThisAndChildrenDOM, releaseThisandParentDOM, resolveID, resolveIDFromRoot, setDOM, setElementNamespacePrefix, setElementQName, setNil, setNil, setNoNamespaceSchemaLocation, setParent, setSchemaLocation, setSchemaType`

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

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

### Methods inherited from interface org.opensaml.saml.saml2.metadata.RoleDescriptor

`getEndpoints, getEndpoints`

### Methods inherited from interface org.opensaml.xmlsec.signature.SignableXMLObject

`getSignature, isSigned, setSignature`

### Methods inherited from interface org.opensaml.core.xml.XMLObject

`detach, ensureDOM, getDOM, getElementQName, getIDIndex, getNamespaceManager, getNamespaces, getNoNamespaceSchemaLocation, getObjectMetadata, getParent, getSchemaLocation, getSchemaType, hasChildren, hasParent, isNil, isNilXSBoolean, releaseChildrenDOM, releaseDOM, releaseParentDOM, resolveID, resolveIDFromRoot, setDOM, setNil, setNil, setNoNamespaceSchemaLocation, setParent, setSchemaLocation`

## Field Details

### id

@Nullable private String id
ID attribute.

### validUntil

@Nullable private Instant validUntil
validUntil attribute.

### cacheDuration

@Nullable private Duration cacheDuration
cacheDurection attribute.

### supportedProtocols

@Nonnull private final List<String> supportedProtocols
Set of supported protocols.

### errorURL

@Nullable private String errorURL
Error URL.

### extensions

@Nullable private Extensions extensions
Extensions child.

### organization

@Nullable private Organization organization
Organization administering this role.

### unknownAttributes

@Nonnull private final AttributeMap unknownAttributes
"anyAttribute" attributes.

### contactPersons

@Nonnull private final XMLObjectChildrenList<ContactPerson> contactPersons
Contact persons for this role.

### keyDescriptors

@Nonnull private final XMLObjectChildrenList<KeyDescriptor> keyDescriptors
Key descriptors for this role.

## Constructor Details

### RoleDescriptorImpl

protected RoleDescriptorImpl(@Nullable String namespaceURI, @Nonnull String elementLocalName, @Nullable String namespacePrefix)
Constructor.

Parameters:
  `namespaceURI` - the namespace the element is in
  `elementLocalName` - the local name of the XML element this Object represents
  `namespacePrefix` - the prefix for the given namespace

## Method Details

### getID

@Nullable public String getID()
Gets the ID of this role descriptor.

Specified by:
  `getID` in interface `RoleDescriptor`
Returns:
  the ID of this role descriptor

### setID

public void setID(@Nullable String newID)
Sets the ID of this role descriptor.

Specified by:
  `setID` in interface `RoleDescriptor`
Parameters:
  `newID` - the ID of this role descriptor

### isValid

public boolean isValid()
Checks to see if the current time is past the validUntil time.

Specified by:
  `isValid` in interface `TimeBoundSAMLObject`
Returns:
  true of this descriptor is still valid otherwise false

### getValidUntil

@Nullable public Instant getValidUntil()
Gets the date until which this descriptor is valid.

Specified by:
  `getValidUntil` in interface `TimeBoundSAMLObject`
Returns:
  the date until which this descriptor is valid

### setValidUntil

public void setValidUntil(@Nullable Instant dt)
Sets the date until which this descriptor is valid.

Specified by:
  `setValidUntil` in interface `TimeBoundSAMLObject`
Parameters:
  `dt` - the date until which this descriptor is valid

### getCacheDuration

@Nullable public Duration getCacheDuration()
Gets the maximum time that this descriptor should be cached.

Specified by:
  `getCacheDuration` in interface `CacheableSAMLObject`
Returns:
  the maximum time that this descriptor should be cached

### setCacheDuration

public void setCacheDuration(@Nullable Duration duration)
Sets the maximum time that this descriptor should be cached.

Specified by:
  `setCacheDuration` in interface `CacheableSAMLObject`
Parameters:
  `duration` - the maximum time that this descriptor should be cached

### getSupportedProtocols

@Nonnull @NotLive @Unmodifiable public List<String> getSupportedProtocols()
Gets an immutable list of protocol URIs supported by this role.

Specified by:
  `getSupportedProtocols` in interface `RoleDescriptor`
Returns:
  list of protocol URIs supported by this role

### isSupportedProtocol

public boolean isSupportedProtocol(@Nonnull @NotEmpty String protocol)
Chckes to see if the given protocol is supported by this role.

Specified by:
  `isSupportedProtocol` in interface `RoleDescriptor`
Parameters:
  `protocol` - the protocol
Returns:
  true if the protocol is supported, false if not

### addSupportedProtocol

public void addSupportedProtocol(@Nonnull @NotEmpty String protocol)
Adds a protocol to the list of supported protocols for this role.

Specified by:
  `addSupportedProtocol` in interface `RoleDescriptor`
Parameters:
  `protocol` - the protocol

### removeSupportedProtocol

public void removeSupportedProtocol(@Nonnull @NotEmpty String protocol)
Removes a protocol to the list of supported protocols for this role.

Specified by:
  `removeSupportedProtocol` in interface `RoleDescriptor`
Parameters:
  `protocol` - the protocol

### removeSupportedProtocols

public void removeSupportedProtocols(@Nonnull Collection<String> protocols)
Removes a list of protocols to the list of supported protocols for this role.

Specified by:
  `removeSupportedProtocols` in interface `RoleDescriptor`
Parameters:
  `protocols` - the protocol

### removeAllSupportedProtocols

public void removeAllSupportedProtocols()
Removes all the supported protocols from this role.

Specified by:
  `removeAllSupportedProtocols` in interface `RoleDescriptor`

### getErrorURL

@Nullable public String getErrorURL()
Gets the URI users should be sent to in the event of an error.

Specified by:
  `getErrorURL` in interface `RoleDescriptor`
Returns:
  the URI users should be sent to in the event of an error

### setErrorURL

public void setErrorURL(@Nullable String url)
Sets the URI users should be sent to in the event of an error.

Specified by:
  `setErrorURL` in interface `RoleDescriptor`
Parameters:
  `url` - the URI users should be sent to in the event of an error

### getExtensions

@Nullable public Extensions getExtensions()
Gets the Extensions child of this object.

Specified by:
  `getExtensions` in interface `RoleDescriptor`
Returns:
  the Extensions child of this object

### setExtensions

public void setExtensions(@Nullable Extensions ext)
Sets the Extensions child of this object.

Specified by:
  `setExtensions` in interface `RoleDescriptor`
Parameters:
  `ext` - the Extensions child of this object

### getOrganization

@Nullable public Organization getOrganization()
Gets the organization responsible for this role.

Specified by:
  `getOrganization` in interface `RoleDescriptor`
Returns:
  the organization responsible for this role

### setOrganization

public void setOrganization(@Nullable Organization org)
Sets the organization responsible for this role.

Specified by:
  `setOrganization` in interface `RoleDescriptor`
Parameters:
  `org` - the organization responsible for this role

### getContactPersons

@Nonnull @Live public List<ContactPerson> getContactPersons()
Gets list of `ContactPerson`s for this role.

Specified by:
  `getContactPersons` in interface `RoleDescriptor`
Returns:
  list of `ContactPerson`s for this role

### getKeyDescriptors

@Nonnull @Live public List<KeyDescriptor> getKeyDescriptors()
Gets the key descriptors for this role.

Specified by:
  `getKeyDescriptors` in interface `RoleDescriptor`
Returns:
  the key descriptors for this role

### getUnknownAttributes

@Nonnull public AttributeMap getUnknownAttributes()
Gets a mutable map of the attributes. The map key is the namespace qualified name of the attribute, the map value is the value of the attribute.

Specified by:
  `getUnknownAttributes` in interface `AttributeExtensibleXMLObject`
Returns:
  a map of the attributes

### getSignatureReferenceID

@Nullable public String getSignatureReferenceID()
Gets the value of the ID attribute for this SAML object which will be used as its signature reference.

Specified by:
  `getSignatureReferenceID` in interface `SignableSAMLObject`
Returns:
  the value of this SAMLObject ID attribute

### getOrderedChildren

@Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren()
Gets an unmodifiable list of child elements in the order that they will appear in the DOM.

Specified by:
  `getOrderedChildren` in interface `XMLObject`
Returns:
  ordered list of child elements