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

# Class SSODescriptorImpl

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
org.opensaml.saml.saml2.metadata.impl.SSODescriptorImpl

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

Direct Known Subclasses:
  `IDPSSODescriptorImpl`, `SPSSODescriptorImpl`

public abstract class SSODescriptorImpl extends RoleDescriptorImpl implements SSODescriptor
Concrete implementation of `SSODescriptor`.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final XMLObjectChildrenList<ArtifactResolutionService>`
`artifactResolutionServices`
Supported artifact resolutions services.
`private final XMLObjectChildrenList<ManageNameIDService>`
`manageNameIDServices`
Manage NameID services for this entity.
`private final XMLObjectChildrenList<NameIDFormat>`
`nameIDFormats`
NameID formats supported by this entity.
`private final XMLObjectChildrenList<SingleLogoutService>`
`singleLogoutServices`
Logout services for this SSO entity.

### 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.metadata.SSODescriptor

`DEFAULT_ELEMENT_LOCAL_NAME, DEFAULT_ELEMENT_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`
`SSODescriptorImpl(String namespaceURI, String elementLocalName, String namespacePrefix)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`List<ArtifactResolutionService>`
`getArtifactResolutionServices()`
Gets a list of artifact resolution services for this service.
`ArtifactResolutionService`
`getDefaultArtifactResolutionService()`
Gets the default artifact resolution service.
`List<Endpoint>`
`getEndpoints()`
Gets immutable list of endpoints for this role.
`List<Endpoint>`
`getEndpoints(QName type)`
Gets a read-only list of endpoints for this role for the given type.
`List<ManageNameIDService>`
`getManageNameIDServices()`
Gets a list of manage NameId services for this service.
`List<NameIDFormat>`
`getNameIDFormats()`
Gets the list of NameID formats this service supports.
`List<XMLObject>`
`getOrderedChildren()`
Gets an unmodifiable list of child elements in the order that they will appear in the DOM.
`List<SingleLogoutService>`
`getSingleLogoutServices()`
Gets a list of single logout services for this service.

### Methods inherited from class org.opensaml.saml.saml2.metadata.impl.RoleDescriptorImpl

`addSupportedProtocol, getCacheDuration, getContactPersons, getErrorURL, getExtensions, getID, getKeyDescriptors, getOrganization, getSignatureReferenceID, getSupportedProtocols, getUnknownAttributes, getValidUntil, isSupportedProtocol, isValid, removeAllSupportedProtocols, removeSupportedProtocol, removeSupportedProtocols, setCacheDuration, setErrorURL, setExtensions, setID, setOrganization, setValidUntil`

### 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.core.xml.AttributeExtensibleXMLObject

`getUnknownAttributes`

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

`getCacheDuration, setCacheDuration`

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

`addSupportedProtocol, getContactPersons, getErrorURL, getExtensions, getID, getKeyDescriptors, getOrganization, getSupportedProtocols, isSupportedProtocol, removeAllSupportedProtocols, removeSupportedProtocol, removeSupportedProtocols, setErrorURL, setExtensions, setID, setOrganization`

### Methods inherited from interface org.opensaml.saml.common.SignableSAMLObject

`getSignatureReferenceID`

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

`getSignature, isSigned, setSignature`

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

`getValidUntil, isValid, setValidUntil`

### 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

### artifactResolutionServices

@Nonnull private final XMLObjectChildrenList<ArtifactResolutionService> artifactResolutionServices
Supported artifact resolutions services.

### singleLogoutServices

@Nonnull private final XMLObjectChildrenList<SingleLogoutService> singleLogoutServices
Logout services for this SSO entity.

### manageNameIDServices

@Nonnull private final XMLObjectChildrenList<ManageNameIDService> manageNameIDServices
Manage NameID services for this entity.

### nameIDFormats

@Nonnull private final XMLObjectChildrenList<NameIDFormat> nameIDFormats
NameID formats supported by this entity.

## Constructor Details

### SSODescriptorImpl

protected SSODescriptorImpl(@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

### getArtifactResolutionServices

@Nonnull @Live public List<ArtifactResolutionService> getArtifactResolutionServices()
Gets a list of artifact resolution services for this service.

Specified by:
  `getArtifactResolutionServices` in interface `SSODescriptor`
Returns:
  list of artifact resolution services for this service

### getDefaultArtifactResolutionService

@Nullable public ArtifactResolutionService getDefaultArtifactResolutionService()
Gets the default artifact resolution service.

The selection algorithm used is:

1. Select the first service with an explicit `isDefault=true`
2. Select the first service with no explicit `isDefault`
3. Select the first service

Specified by:
  `getDefaultArtifactResolutionService` in interface `SSODescriptor`
Returns:
  default artifact resolution service (or null if there are no artifact resolution services defined)

### getSingleLogoutServices

@Nonnull @Live public List<SingleLogoutService> getSingleLogoutServices()
Gets a list of single logout services for this service.

Specified by:
  `getSingleLogoutServices` in interface `SSODescriptor`
Returns:
  list of single logout services for this service

### getManageNameIDServices

@Nonnull @Live public List<ManageNameIDService> getManageNameIDServices()
Gets a list of manage NameId services for this service.

Specified by:
  `getManageNameIDServices` in interface `SSODescriptor`
Returns:
  list of manage NameId services for this service

### getNameIDFormats

@Nonnull @Live public List<NameIDFormat> getNameIDFormats()
Gets the list of NameID formats this service supports.

Specified by:
  `getNameIDFormats` in interface `SSODescriptor`
Returns:
  NameID formats this service supports

### getEndpoints

@Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints()
Gets immutable list of endpoints for this role.

Specified by:
  `getEndpoints` in interface `RoleDescriptor`
Returns:
  immutable list of endpoints for this role

### getEndpoints

@Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints(@Nonnull QName type)
Gets a read-only list of endpoints for this role for the given type.

Specified by:
  `getEndpoints` in interface `RoleDescriptor`
Parameters:
  `type` - the type of endpoints to retrieve
Returns:
  immutable list of endpoints for this role

### 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`
Overrides:
  `getOrderedChildren` in class `RoleDescriptorImpl`
Returns:
  ordered list of child elements