[java-opensaml] branch main updated: IDP-2069 - Null Handling Task
Scott Cantor
cantor.2 at osu.edu
Wed Apr 5 16:56:30 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-opensaml.
View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=e6905d3844f4aed1fca7455aae9293b48c552bf3
The following commit(s) were added to refs/heads/main by this push:
new e6905d384 IDP-2069 - Null Handling Task
e6905d384 is described below
commit e6905d3844f4aed1fca7455aae9293b48c552bf3
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Apr 5 12:56:23 2023 -0400
IDP-2069 - Null Handling Task
https://shibboleth.atlassian.net/browse/IDP-2069
Clean up impls of SAML extensions.
---
.../ext/idpdisco/impl/DiscoveryResponseImpl.java | 4 +-
.../ext/reqattr/impl/RequestedAttributesImpl.java | 1 -
.../saml/ext/saml1md/impl/SourceIDImpl.java | 7 +-
.../saml/ext/saml2alg/impl/DigestMethodImpl.java | 15 +++--
.../saml/ext/saml2alg/impl/SigningMethodImpl.java | 23 ++++---
.../saml/ext/saml2aslo/impl/AsynchronousImpl.java | 11 +++-
.../saml/ext/saml2cb/impl/ChannelBindingsImpl.java | 29 +++++----
.../ext/saml2delrestrict/impl/DelegateImpl.java | 45 +++++++------
.../impl/DelegationRestrictionTypeImpl.java | 24 ++++---
.../ext/saml2mdattr/impl/EntityAttributesImpl.java | 24 +++++--
.../ext/saml2mdquery/impl/ActionNamespaceImpl.java | 8 ++-
.../impl/AttributeQueryDescriptorTypeImpl.java | 35 ++++++----
.../impl/AuthnQueryDescriptorTypeImpl.java | 20 ++++--
.../impl/AuthzDecisionQueryDescriptorTypeImpl.java | 41 +++++++-----
.../saml2mdquery/impl/QueryDescriptorTypeImpl.java | 34 +++++-----
.../saml2mdreqinit/impl/RequestInitiatorImpl.java | 10 ++-
.../saml/ext/saml2mdrpi/impl/PublicationImpl.java | 34 ++++++----
.../ext/saml2mdrpi/impl/PublicationInfoImpl.java | 51 +++++++--------
.../ext/saml2mdrpi/impl/PublicationPathImpl.java | 28 ++++----
.../ext/saml2mdrpi/impl/RegistrationInfoImpl.java | 41 ++++++------
.../saml2mdrpi/impl/RegistrationPolicyImpl.java | 7 +-
.../saml/ext/saml2mdrpi/impl/UsagePolicyImpl.java | 6 +-
.../saml/ext/saml2mdui/impl/DescriptionImpl.java | 10 ++-
.../saml/ext/saml2mdui/impl/DiscoHintsImpl.java | 42 ++++++------
.../saml/ext/saml2mdui/impl/DisplayNameImpl.java | 8 ++-
.../saml/ext/saml2mdui/impl/DomainHintImpl.java | 6 +-
.../ext/saml2mdui/impl/GeolocationHintImpl.java | 7 +-
.../saml/ext/saml2mdui/impl/IPHintImpl.java | 8 ++-
.../ext/saml2mdui/impl/InformationURLImpl.java | 12 ++--
.../saml/ext/saml2mdui/impl/KeywordsImpl.java | 76 ++++++++++------------
.../opensaml/saml/ext/saml2mdui/impl/LogoImpl.java | 23 ++++---
.../saml2mdui/impl/PrivacyStatementURLImpl.java | 13 ++--
.../saml/ext/saml2mdui/impl/UIInfoImpl.java | 51 +++++++--------
.../opensaml/saml/ext/samlec/impl/EncTypeImpl.java | 8 ++-
.../saml/ext/samlec/impl/GeneratedKeyImpl.java | 23 ++++---
.../saml/ext/samlec/impl/SessionKeyImpl.java | 59 ++++++++---------
.../saml/ext/samlpthrpty/impl/RespondToImpl.java | 7 +-
37 files changed, 485 insertions(+), 366 deletions(-)
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseImpl.java
index 68ac16db0..0f881b73d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseImpl.java
@@ -28,8 +28,7 @@ import org.opensaml.saml.ext.idpdisco.DiscoveryResponse;
import org.opensaml.saml.saml2.metadata.impl.IndexedEndpointImpl;
/**
- * This plugs into the standard opensaml2 parser framework to allow us to get use <code> DiscoverResponse </code>
- * elements in our extensions.
+ * Implementation of {@link DiscoveryResponse}.
*/
public class DiscoveryResponseImpl extends IndexedEndpointImpl implements DiscoveryResponse {
@@ -44,4 +43,5 @@ public class DiscoveryResponseImpl extends IndexedEndpointImpl implements Discov
@Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/reqattr/impl/RequestedAttributesImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/reqattr/impl/RequestedAttributesImpl.java
index 28e47b9af..c4d129b68 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/reqattr/impl/RequestedAttributesImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/reqattr/impl/RequestedAttributesImpl.java
@@ -63,7 +63,6 @@ public class RequestedAttributesImpl extends AbstractXMLObject implements Reques
/** {@inheritDoc} */
@Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
-
return CollectionSupport.copyToList(requestedAttributes);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDImpl.java
index 6fad849dd..ceb3b3fa3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDImpl.java
@@ -18,6 +18,9 @@
package org.opensaml.saml.ext.saml1md.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.impl.XSStringImpl;
import org.opensaml.saml.ext.saml1md.SourceID;
@@ -33,7 +36,9 @@ public class SourceIDImpl extends XSStringImpl implements SourceID {
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected SourceIDImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected SourceIDImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodImpl.java
index 2aecdd587..cedb1fb1b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodImpl.java
@@ -29,16 +29,20 @@ import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.util.IndexedXMLObjectChildrenList;
import org.opensaml.saml.ext.saml2alg.DigestMethod;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+
/**
* Implementation of {@link DigestMethod}.
*/
public class DigestMethodImpl extends AbstractXMLObject implements DigestMethod {
/** Wildcard child elements. */
- private final IndexedXMLObjectChildrenList<XMLObject> unknownChildren;
+ @Nonnull private final IndexedXMLObjectChildrenList<XMLObject> unknownChildren;
/** Algorithm attribute value. */
- private String algorithm;
+ @Nullable private String algorithm;
/**
* Constructor.
@@ -66,17 +70,18 @@ public class DigestMethodImpl extends AbstractXMLObject implements DigestMethod
/**
* {@inheritDoc}
*/
- public List<XMLObject> getUnknownXMLObjects() {
+ @Nonnull @Live public List<XMLObject> getUnknownXMLObjects() {
return unknownChildren;
}
/** {@inheritDoc} */
- public List<XMLObject> getUnknownXMLObjects(final QName typeOrName) {
+ @SuppressWarnings("unchecked")
+ @Nonnull @Live public List<XMLObject> getUnknownXMLObjects(@Nonnull final QName typeOrName) {
return (List<XMLObject>) unknownChildren.subList(typeOrName);
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
return Collections.unmodifiableList(unknownChildren);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodImpl.java
index 70279d340..b1d1f2268 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodImpl.java
@@ -17,7 +17,6 @@
package org.opensaml.saml.ext.saml2alg.impl;
-import java.util.Collections;
import java.util.List;
import javax.annotation.Nonnull;
@@ -29,22 +28,27 @@ import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.util.IndexedXMLObjectChildrenList;
import org.opensaml.saml.ext.saml2alg.SigningMethod;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Implementation of {@link SigningMethod}.
*/
public class SigningMethodImpl extends AbstractXMLObject implements SigningMethod {
/** Wildcard child elements. */
- private final IndexedXMLObjectChildrenList<XMLObject> unknownChildren;
+ @Nonnull private final IndexedXMLObjectChildrenList<XMLObject> unknownChildren;
/** Algorithm attribute value. */
- private String algorithm;
+ @Nullable private String algorithm;
/** MinKeySize attribute value. */
- private Integer minKeySize;
+ @Nullable private Integer minKeySize;
/** MaxKeySize attribute value. */
- private Integer maxKeySize;
+ @Nullable private Integer maxKeySize;
/**
* Constructor.
@@ -92,18 +96,19 @@ public class SigningMethodImpl extends AbstractXMLObject implements SigningMetho
/**
* {@inheritDoc}
*/
- public List<XMLObject> getUnknownXMLObjects() {
+ @Nonnull @Live public List<XMLObject> getUnknownXMLObjects() {
return unknownChildren;
}
/** {@inheritDoc} */
- public List<XMLObject> getUnknownXMLObjects(final QName typeOrName) {
+ @SuppressWarnings("unchecked")
+ @Nonnull @Live public List<XMLObject> getUnknownXMLObjects(@Nonnull final QName typeOrName) {
return (List<XMLObject>) unknownChildren.subList(typeOrName);
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
- return Collections.unmodifiableList(unknownChildren);
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return CollectionSupport.copyToList(unknownChildren);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousImpl.java
index f8d8d5658..c05fc87d0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousImpl.java
@@ -23,10 +23,16 @@ package org.opensaml.saml.ext.saml2aslo.impl;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.saml.ext.saml2aslo.Asynchronous;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+
/**
* Concrete implementation of {@link Asynchronous}.
*/
@@ -39,12 +45,13 @@ public class AsynchronousImpl extends AbstractXMLObject implements Asynchronous
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected AsynchronousImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected AsynchronousImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
// no children
return null;
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsImpl.java
index 13abdb9a0..e3a6085a9 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.saml2cb.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.XSBooleanValue;
import org.opensaml.core.xml.schema.impl.XSBase64BinaryImpl;
import org.opensaml.saml.ext.saml2cb.ChannelBindings;
@@ -30,13 +33,13 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
public class ChannelBindingsImpl extends XSBase64BinaryImpl implements ChannelBindings {
/** Type attribute value. */
- private String type;
+ @Nullable private String type;
/** soap11:actor attribute. */
- private String soap11Actor;
+ @Nullable private String soap11Actor;
/** soap11:mustUnderstand. */
- private XSBooleanValue soap11MustUnderstand;
+ @Nullable private XSBooleanValue soap11MustUnderstand;
/**
* Constructor.
@@ -45,23 +48,23 @@ public class ChannelBindingsImpl extends XSBase64BinaryImpl implements ChannelBi
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected ChannelBindingsImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected ChannelBindingsImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
/** {@inheritDoc} */
- public String getType() {
+ @Nullable public String getType() {
return type;
}
/** {@inheritDoc} */
- public void setType(final String newType) {
+ public void setType(@Nullable final String newType) {
type = prepareForAssignment(type, newType);
}
/** {@inheritDoc} */
- public Boolean isSOAP11MustUnderstand() {
+ @Nullable public Boolean isSOAP11MustUnderstand() {
if (soap11MustUnderstand != null) {
return soap11MustUnderstand.getValue();
}
@@ -69,12 +72,12 @@ public class ChannelBindingsImpl extends XSBase64BinaryImpl implements ChannelBi
}
/** {@inheritDoc} */
- public XSBooleanValue isSOAP11MustUnderstandXSBoolean() {
+ @Nullable public XSBooleanValue isSOAP11MustUnderstandXSBoolean() {
return soap11MustUnderstand;
}
/** {@inheritDoc} */
- public void setSOAP11MustUnderstand(final Boolean newMustUnderstand) {
+ public void setSOAP11MustUnderstand(@Nullable final Boolean newMustUnderstand) {
if (newMustUnderstand != null) {
soap11MustUnderstand = prepareForAssignment(soap11MustUnderstand,
new XSBooleanValue(newMustUnderstand, true));
@@ -86,19 +89,19 @@ public class ChannelBindingsImpl extends XSBase64BinaryImpl implements ChannelBi
}
/** {@inheritDoc} */
- public void setSOAP11MustUnderstand(final XSBooleanValue newMustUnderstand) {
+ public void setSOAP11MustUnderstand(@Nullable final XSBooleanValue newMustUnderstand) {
soap11MustUnderstand = prepareForAssignment(soap11MustUnderstand, newMustUnderstand);
manageQualifiedAttributeNamespace(MustUnderstandBearing.SOAP11_MUST_UNDERSTAND_ATTR_NAME,
soap11MustUnderstand != null);
}
/** {@inheritDoc} */
- public String getSOAP11Actor() {
+ @Nullable public String getSOAP11Actor() {
return soap11Actor;
}
/** {@inheritDoc} */
- public void setSOAP11Actor(final String newActor) {
+ public void setSOAP11Actor(@Nullable final String newActor) {
soap11Actor = prepareForAssignment(soap11Actor, newActor);
manageQualifiedAttributeNamespace(ActorBearing.SOAP11_ACTOR_ATTR_NAME, soap11Actor != null);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateImpl.java
index fb161b1ac..51f7b33a4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateImpl.java
@@ -19,9 +19,11 @@ package org.opensaml.saml.ext.saml2delrestrict.impl;
import java.time.Instant;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.saml.ext.saml2delrestrict.Delegate;
@@ -29,25 +31,29 @@ import org.opensaml.saml.saml2.core.BaseID;
import org.opensaml.saml.saml2.core.EncryptedID;
import org.opensaml.saml.saml2.core.NameID;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Implementation of {@link Delegate}.
*/
public class DelegateImpl extends AbstractXMLObject implements Delegate {
/** BaseID child element. */
- private BaseID baseID;
+ @Nullable private BaseID baseID;
/** NameID child element. */
- private NameID nameID;
+ @Nullable private NameID nameID;
/** EncryptedID child element. */
- private EncryptedID encryptedID;
+ @Nullable private EncryptedID encryptedID;
/** DelegationInstant attribute. */
- private Instant delegationInstant;
+ @Nullable private Instant delegationInstant;
/** ConfirmationMethod attribute. */
- private String confirmationMethod;
+ @Nullable private String confirmationMethod;
/**
* Constructor.
@@ -56,62 +62,63 @@ public class DelegateImpl extends AbstractXMLObject implements Delegate {
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected DelegateImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected DelegateImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
/** {@inheritDoc} */
- public BaseID getBaseID() {
+ @Nullable public BaseID getBaseID() {
return baseID;
}
/** {@inheritDoc} */
- public String getConfirmationMethod() {
+ @Nullable public String getConfirmationMethod() {
return confirmationMethod;
}
/** {@inheritDoc} */
- public Instant getDelegationInstant() {
+ @Nullable public Instant getDelegationInstant() {
return delegationInstant;
}
/** {@inheritDoc} */
- public EncryptedID getEncryptedID() {
+ @Nullable public EncryptedID getEncryptedID() {
return encryptedID;
}
/** {@inheritDoc} */
- public NameID getNameID() {
+ @Nullable public NameID getNameID() {
return nameID;
}
/** {@inheritDoc} */
- public void setBaseID(final BaseID newBaseID) {
+ public void setBaseID(@Nullable final BaseID newBaseID) {
baseID = prepareForAssignment(baseID, newBaseID);
}
/** {@inheritDoc} */
- public void setConfirmationMethod(final String newMethod) {
+ public void setConfirmationMethod(@Nullable final String newMethod) {
confirmationMethod = prepareForAssignment(confirmationMethod, newMethod);
}
/** {@inheritDoc} */
- public void setDelegationInstant(final Instant newInstant) {
+ public void setDelegationInstant(@Nullable final Instant newInstant) {
delegationInstant = prepareForAssignment(delegationInstant, newInstant);
}
/** {@inheritDoc} */
- public void setEncryptedID(final EncryptedID newEncryptedID) {
+ public void setEncryptedID(@Nullable final EncryptedID newEncryptedID) {
encryptedID = prepareForAssignment(encryptedID, newEncryptedID);
}
/** {@inheritDoc} */
- public void setNameID(final NameID newNameID) {
+ public void setNameID(@Nullable final NameID newNameID) {
nameID = prepareForAssignment(nameID, newNameID);
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
final ArrayList<XMLObject> children = new ArrayList<>();
if (baseID != null) {
@@ -123,7 +130,7 @@ public class DelegateImpl extends AbstractXMLObject implements Delegate {
if (encryptedID != null) {
children.add(encryptedID);
}
- return Collections.unmodifiableList(children);
+ return CollectionSupport.copyToList(children);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeImpl.java
index 84f0af78f..f3b4ca999 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeImpl.java
@@ -17,23 +17,29 @@
package org.opensaml.saml.ext.saml2delrestrict.impl;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.util.XMLObjectChildrenList;
import org.opensaml.saml.ext.saml2delrestrict.Delegate;
import org.opensaml.saml.ext.saml2delrestrict.DelegationRestrictionType;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Implementation of {@link DelegationRestrictionType}.
*/
public class DelegationRestrictionTypeImpl extends AbstractXMLObject implements DelegationRestrictionType {
/** Delegate child elements. */
- private XMLObjectChildrenList<Delegate> delegates;
+ @Nonnull private final XMLObjectChildrenList<Delegate> delegates;
/**
* Constructor.
@@ -42,22 +48,20 @@ public class DelegationRestrictionTypeImpl extends AbstractXMLObject implements
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected DelegationRestrictionTypeImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected DelegationRestrictionTypeImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
delegates = new XMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- public List<Delegate> getDelegates() {
+ @Nonnull @Live public List<Delegate> getDelegates() {
return delegates;
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
- final ArrayList<XMLObject> children = new ArrayList<>();
- children.addAll(delegates);
- return Collections.unmodifiableList(children);
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return CollectionSupport.copyToList(delegates);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesImpl.java
index 1b6c3894f..12123464d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesImpl.java
@@ -20,6 +20,9 @@ package org.opensaml.saml.ext.saml2mdattr.impl;
import java.util.List;
import java.util.stream.Collectors;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.util.IndexedXMLObjectChildrenList;
@@ -30,11 +33,15 @@ import org.opensaml.saml.saml2.core.Attribute;
import com.google.common.base.Predicates;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+
/** Concrete implementation of {@link EntityAttributes}. */
public class EntityAttributesImpl extends AbstractXMLObject implements EntityAttributes {
/** Extension data. */
- private final IndexedXMLObjectChildrenList<SAMLObject> attributeInfo;
+ @Nonnull private final IndexedXMLObjectChildrenList<SAMLObject> attributeInfo;
/**
* Constructor.
@@ -43,29 +50,31 @@ public class EntityAttributesImpl extends AbstractXMLObject implements EntityAtt
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected EntityAttributesImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected EntityAttributesImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
attributeInfo = new IndexedXMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- public List<Attribute> getAttributes() {
+ @SuppressWarnings("unchecked")
+ @Nonnull @Live public List<Attribute> getAttributes() {
return (List<Attribute>) attributeInfo.subList(Attribute.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- public List<Assertion> getAssertions() {
+ @SuppressWarnings("unchecked")
+ @Nonnull @Live public List<Assertion> getAssertions() {
return (List<Assertion>) attributeInfo.subList(Assertion.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- public List<SAMLObject> getEntityAttributesChildren() {
+ @Nonnull @Live public List<SAMLObject> getEntityAttributesChildren() {
return attributeInfo;
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
if (attributeInfo.size() == 0) {
return null;
@@ -76,4 +85,5 @@ public class EntityAttributesImpl extends AbstractXMLObject implements EntityAtt
.filter(Predicates.or(Assertion.class::isInstance, Attribute.class::isInstance))
.collect(Collectors.toUnmodifiableList());
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceImpl.java
index 56bc87cfa..52738fa07 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.saml2mdquery.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.impl.XSURIImpl;
import org.opensaml.saml.ext.saml2mdquery.ActionNamespace;
@@ -32,8 +35,9 @@ public class ActionNamespaceImpl extends XSURIImpl implements ActionNamespace {
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected ActionNamespaceImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected ActionNamespaceImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeImpl.java
index 550716e8d..17d5d486d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeImpl.java
@@ -18,9 +18,10 @@
package org.opensaml.saml.ext.saml2mdquery.impl;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.opensaml.core.xml.XMLObject;
@@ -29,13 +30,18 @@ import org.opensaml.saml.ext.saml2mdquery.AttributeQueryDescriptorType;
import org.opensaml.saml.saml2.metadata.AttributeConsumingService;
import org.opensaml.saml.saml2.metadata.Endpoint;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Concrete implementation of {@link AttributeQueryDescriptorType}.
*/
public class AttributeQueryDescriptorTypeImpl extends QueryDescriptorTypeImpl implements AttributeQueryDescriptorType {
/** Attribute consuming endpoints. */
- private XMLObjectChildrenList<AttributeConsumingService> attributeConsumingServices;
+ @Nonnull private final XMLObjectChildrenList<AttributeConsumingService> attributeConsumingServices;
/**
* Constructor.
@@ -44,35 +50,40 @@ public class AttributeQueryDescriptorTypeImpl extends QueryDescriptorTypeImpl im
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected AttributeQueryDescriptorTypeImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected AttributeQueryDescriptorTypeImpl(@Nullable final String namespaceURI,
+ @Nonnull final String elementLocalName, @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
attributeConsumingServices = new XMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- public List<AttributeConsumingService> getAttributeConsumingServices() {
+ @Nonnull @Live public List<AttributeConsumingService> getAttributeConsumingServices() {
return attributeConsumingServices;
}
/** {@inheritDoc} */
- public List<Endpoint> getEndpoints() {
- return new ArrayList<>();
+ @Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints() {
+ return CollectionSupport.emptyList();
}
/** {@inheritDoc} */
- public List<Endpoint> getEndpoints(final QName type) {
- return null;
+ @Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints(@Nonnull final QName type) {
+ return CollectionSupport.emptyList();
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
+ @Override
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
final ArrayList<XMLObject> children = new ArrayList<>();
- children.addAll(super.getOrderedChildren());
+ final List<XMLObject> superChildren = super.getOrderedChildren();
+ if (superChildren != null) {
+ children.addAll(superChildren);
+ }
children.addAll(attributeConsumingServices);
- return Collections.unmodifiableList(children);
+ return CollectionSupport.copyToList(children);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeImpl.java
index a2cff8577..c9303cb51 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeImpl.java
@@ -17,14 +17,19 @@
package org.opensaml.saml.ext.saml2mdquery.impl;
-import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.opensaml.saml.ext.saml2mdquery.AuthnQueryDescriptorType;
import org.opensaml.saml.saml2.metadata.Endpoint;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Concrete implementation of {@link AuthnQueryDescriptorType}.
*/
@@ -37,18 +42,19 @@ public class AuthnQueryDescriptorTypeImpl extends QueryDescriptorTypeImpl implem
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected AuthnQueryDescriptorTypeImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected AuthnQueryDescriptorTypeImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
/** {@inheritDoc} */
- public List<Endpoint> getEndpoints() {
- return new ArrayList<>();
+ @Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints() {
+ return CollectionSupport.emptyList();
}
/** {@inheritDoc} */
- public List<Endpoint> getEndpoints(final QName type) {
- return null;
+ @Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints(@Nonnull final QName type) {
+ return CollectionSupport.emptyList();
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeImpl.java
index ab522adb8..5c6bf5927 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeImpl.java
@@ -18,9 +18,10 @@
package org.opensaml.saml.ext.saml2mdquery.impl;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.opensaml.core.xml.XMLObject;
@@ -29,6 +30,10 @@ import org.opensaml.saml.ext.saml2mdquery.ActionNamespace;
import org.opensaml.saml.ext.saml2mdquery.AuthzDecisionQueryDescriptorType;
import org.opensaml.saml.saml2.metadata.Endpoint;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Concrete implementation of {@link AuthzDecisionQueryDescriptorType}.
*/
@@ -36,7 +41,7 @@ public class AuthzDecisionQueryDescriptorTypeImpl extends QueryDescriptorTypeImp
implements AuthzDecisionQueryDescriptorType{
/** Supported action namespaces. */
- private XMLObjectChildrenList<ActionNamespace> actionNamespaces;
+ @Nonnull private final XMLObjectChildrenList<ActionNamespace> actionNamespaces;
/**
* Constructor.
@@ -45,39 +50,41 @@ public class AuthzDecisionQueryDescriptorTypeImpl extends QueryDescriptorTypeImp
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected AuthzDecisionQueryDescriptorTypeImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected AuthzDecisionQueryDescriptorTypeImpl(@Nullable final String namespaceURI,
+ @Nonnull final String elementLocalName, @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
actionNamespaces = new XMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public List<ActionNamespace> getActionNamespaces() {
+ @Nonnull @NotLive @Unmodifiable public List<ActionNamespace> getActionNamespaces() {
return actionNamespaces;
}
/** {@inheritDoc} */
- @Override
- public List<Endpoint> getEndpoints() {
- return new ArrayList<>();
+ @Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints() {
+ return CollectionSupport.emptyList();
}
- /** {@inheritDoc} */
- @Override
- public List<Endpoint> getEndpoints(final QName type) {
- return null;
+ /** {@inheritDoc} */ @Override
+ @Nonnull @NotLive @Unmodifiable public List<Endpoint> getEndpoints(@Nonnull final QName type) {
+ return CollectionSupport.emptyList();
}
/** {@inheritDoc} */
@Override
- public List<XMLObject> getOrderedChildren() {
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
final ArrayList<XMLObject> children = new ArrayList<>();
-
- children.addAll(super.getOrderedChildren());
+
+ final List<XMLObject> superChildren = super.getOrderedChildren();
+ if (superChildren != null) {
+ children.addAll(superChildren);
+ }
+
children.addAll(actionNamespaces);
- return Collections.unmodifiableList(children);
+ return CollectionSupport.copyToList(children);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/QueryDescriptorTypeImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/QueryDescriptorTypeImpl.java
index 00d175e0c..d7c75dba8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/QueryDescriptorTypeImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/QueryDescriptorTypeImpl.java
@@ -21,6 +21,9 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.schema.XSBooleanValue;
import org.opensaml.core.xml.util.XMLObjectChildrenList;
@@ -28,16 +31,19 @@ import org.opensaml.saml.ext.saml2mdquery.QueryDescriptorType;
import org.opensaml.saml.saml2.metadata.NameIDFormat;
import org.opensaml.saml.saml2.metadata.impl.RoleDescriptorImpl;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+
/**
* Concrete implementation of {@link QueryDescriptorType}.
*/
public abstract class QueryDescriptorTypeImpl extends RoleDescriptorImpl implements QueryDescriptorType {
/** WantAssertionSigned attribute value. */
- private XSBooleanValue wantAssertionsSigned;
+ @Nullable private XSBooleanValue wantAssertionsSigned;
/** Supported NameID formats. */
- private XMLObjectChildrenList<NameIDFormat> nameIDFormats;
+ @Nonnull private final XMLObjectChildrenList<NameIDFormat> nameIDFormats;
/**
* Constructor.
@@ -46,16 +52,15 @@ public abstract class QueryDescriptorTypeImpl extends RoleDescriptorImpl impleme
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected QueryDescriptorTypeImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected QueryDescriptorTypeImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
nameIDFormats = new XMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public Boolean getWantAssertionsSigned() {
+ @Nullable public Boolean getWantAssertionsSigned() {
if (wantAssertionsSigned != null) {
return wantAssertionsSigned.getValue();
}
@@ -63,8 +68,7 @@ public abstract class QueryDescriptorTypeImpl extends RoleDescriptorImpl impleme
}
/** {@inheritDoc} */
- @Override
- public void setWantAssertionsSigned(final Boolean newWantAssertionsSigned) {
+ public void setWantAssertionsSigned(@Nullable final Boolean newWantAssertionsSigned) {
if (newWantAssertionsSigned != null) {
wantAssertionsSigned = prepareForAssignment(wantAssertionsSigned,
new XSBooleanValue(newWantAssertionsSigned, false));
@@ -74,26 +78,23 @@ public abstract class QueryDescriptorTypeImpl extends RoleDescriptorImpl impleme
}
/** {@inheritDoc} */
- @Override
- public XSBooleanValue getWantAssertionsSignedXSBoolean(){
+ @Nullable public XSBooleanValue getWantAssertionsSignedXSBoolean(){
return wantAssertionsSigned;
}
/** {@inheritDoc} */
- @Override
- public void setWantAssertionsSigned(final XSBooleanValue wantAssertionSigned){
- this.wantAssertionsSigned = prepareForAssignment(this.wantAssertionsSigned, wantAssertionSigned);
+ public void setWantAssertionsSigned(@Nullable final XSBooleanValue newWantAssertionsSigned){
+ wantAssertionsSigned = prepareForAssignment(wantAssertionsSigned, newWantAssertionsSigned);
}
/** {@inheritDoc} */
- @Override
- public List<NameIDFormat> getNameIDFormat(){
+ @Nonnull @NotLive @Unmodifiable public List<NameIDFormat> getNameIDFormat(){
return nameIDFormats;
}
/** {@inheritDoc} */
@Override
- public List<XMLObject> getOrderedChildren() {
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
final ArrayList<XMLObject> children = new ArrayList<>();
children.addAll(super.getOrderedChildren());
@@ -101,4 +102,5 @@ public abstract class QueryDescriptorTypeImpl extends RoleDescriptorImpl impleme
return Collections.unmodifiableList(children);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorImpl.java
index 04053d436..ef56aeb48 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorImpl.java
@@ -21,12 +21,15 @@
package org.opensaml.saml.ext.saml2mdreqinit.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdreqinit.RequestInitiator;
import org.opensaml.saml.saml2.metadata.impl.EndpointImpl;
/**
- * Concrete implementation of {@link org.opensaml.saml.ext.saml2mdreqinit.RequestInitiator}.
+ * Concrete implementation of {@link RequestInitiator}.
*/
public class RequestInitiatorImpl extends EndpointImpl implements RequestInitiator {
@@ -37,8 +40,9 @@ public class RequestInitiatorImpl extends EndpointImpl implements RequestInitiat
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected RequestInitiatorImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected RequestInitiatorImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationImpl.java
index 8cf185a94..efd925752 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationImpl.java
@@ -18,26 +18,31 @@
package org.opensaml.saml.ext.saml2mdrpi.impl;
import java.time.Instant;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.saml.ext.saml2mdrpi.Publication;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+
/**
* A concrete {@link Publication}.
*/
public class PublicationImpl extends AbstractXMLObject implements Publication {
/** The publisher. */
- private String publisher;
+ @Nullable private String publisher;
/** The creation instant. */
- private Instant creationInstant;
+ @Nullable private Instant creationInstant;
/** The publicationId. */
- private String publicationId;
+ @Nullable private String publicationId;
/**
* Constructor.
@@ -46,44 +51,45 @@ public class PublicationImpl extends AbstractXMLObject implements Publication {
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected PublicationImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected PublicationImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
/** {@inheritDoc} */
- public String getPublisher() {
+ @Nullable public String getPublisher() {
return publisher;
}
/** {@inheritDoc} */
- public void setPublisher(final String thePublisher) {
+ public void setPublisher(@Nullable final String thePublisher) {
publisher = prepareForAssignment(publisher, thePublisher);
}
/** {@inheritDoc} */
- public Instant getCreationInstant() {
+ @Nullable public Instant getCreationInstant() {
return creationInstant;
}
/** {@inheritDoc} */
- public void setCreationInstant(final Instant dateTime) {
+ public void setCreationInstant(@Nullable final Instant dateTime) {
creationInstant = prepareForAssignment(creationInstant, dateTime);
}
/** {@inheritDoc} */
- public String getPublicationId() {
+ @Nullable public String getPublicationId() {
return publicationId;
}
/** {@inheritDoc} */
- public void setPublicationId(final String id) {
+ public void setPublicationId(@Nullable final String id) {
publicationId = prepareForAssignment(publicationId, id);
}
/** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
- return Collections.<XMLObject>emptyList();
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return null;
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoImpl.java
index 3fa4bcddb..dc49586e5 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoImpl.java
@@ -18,9 +18,11 @@
package org.opensaml.saml.ext.saml2mdrpi.impl;
import java.time.Instant;
-import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.util.IndexedXMLObjectChildrenList;
@@ -28,22 +30,27 @@ import org.opensaml.core.xml.util.XMLObjectChildrenList;
import org.opensaml.saml.ext.saml2mdrpi.PublicationInfo;
import org.opensaml.saml.ext.saml2mdrpi.UsagePolicy;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Concrete {@link PublicationInfo}.
*/
public class PublicationInfoImpl extends AbstractXMLObject implements PublicationInfo {
/** The policies. */
- private XMLObjectChildrenList<UsagePolicy> usagePolicies;
+ @Nonnull private final XMLObjectChildrenList<UsagePolicy> usagePolicies;
/** The publisher. */
- private String publisher;
+ @Nullable private String publisher;
/** The creation instant. */
- private Instant creationInstant;
+ @Nullable private Instant creationInstant;
/** The publicationId. */
- private String publicationId;
+ @Nullable private String publicationId;
/**
* Constructor.
@@ -52,60 +59,50 @@ public class PublicationInfoImpl extends AbstractXMLObject implements Publicatio
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected PublicationInfoImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected PublicationInfoImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
usagePolicies = new IndexedXMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public String getPublisher() {
+ @Nullable public String getPublisher() {
return publisher;
}
/** {@inheritDoc} */
- @Override
- public void setPublisher(final String thePublisher) {
+ public void setPublisher(@Nullable final String thePublisher) {
publisher = prepareForAssignment(publisher, thePublisher);
}
/** {@inheritDoc} */
- @Override
- public Instant getCreationInstant() {
+ @Nullable public Instant getCreationInstant() {
return creationInstant;
}
/** {@inheritDoc} */
- @Override
- public void setCreationInstant(final Instant dateTime) {
+ public void setCreationInstant(@Nullable final Instant dateTime) {
creationInstant = prepareForAssignment(creationInstant, dateTime);
}
/** {@inheritDoc} */
- @Override
- public String getPublicationId() {
+ @Nullable public String getPublicationId() {
return publicationId;
}
/** {@inheritDoc} */
- @Override
- public void setPublicationId(final String id) {
+ public void setPublicationId(@Nullable final String id) {
publicationId = prepareForAssignment(publicationId, id);
}
/** {@inheritDoc} */
- @Override
- public List<UsagePolicy> getUsagePolicies() {
+ @Nonnull @Live public List<UsagePolicy> getUsagePolicies() {
return usagePolicies;
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getOrderedChildren() {
- final ArrayList<XMLObject> children = new ArrayList<>();
- children.addAll(usagePolicies);
- return children;
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return CollectionSupport.copyToList(usagePolicies);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathImpl.java
index d3a30216a..ab1a9b8fc 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathImpl.java
@@ -17,9 +17,11 @@
package org.opensaml.saml.ext.saml2mdrpi.impl;
-import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.util.IndexedXMLObjectChildrenList;
@@ -27,6 +29,11 @@ import org.opensaml.core.xml.util.XMLObjectChildrenList;
import org.opensaml.saml.ext.saml2mdrpi.Publication;
import org.opensaml.saml.ext.saml2mdrpi.PublicationPath;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* A concrete {@link PublicationPath}.
@@ -34,7 +41,7 @@ import org.opensaml.saml.ext.saml2mdrpi.PublicationPath;
public class PublicationPathImpl extends AbstractXMLObject implements PublicationPath {
/** The policies. */
- private XMLObjectChildrenList<Publication> publications;
+ @Nonnull private final XMLObjectChildrenList<Publication> publications;
/**
* Constructor.
@@ -43,23 +50,20 @@ public class PublicationPathImpl extends AbstractXMLObject implements Publicatio
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected PublicationPathImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected PublicationPathImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
publications = new IndexedXMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public List<Publication> getPublications() {
+ @Nonnull @Live public List<Publication> getPublications() {
return publications;
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getOrderedChildren() {
- final ArrayList<XMLObject> children = new ArrayList<>();
- children.addAll(publications);
- return children;
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return CollectionSupport.copyToList(publications);
}
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoImpl.java
index d78ca150f..fae5ec182 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoImpl.java
@@ -18,9 +18,11 @@
package org.opensaml.saml.ext.saml2mdrpi.impl;
import java.time.Instant;
-import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.util.IndexedXMLObjectChildrenList;
@@ -28,19 +30,24 @@ import org.opensaml.core.xml.util.XMLObjectChildrenList;
import org.opensaml.saml.ext.saml2mdrpi.RegistrationInfo;
import org.opensaml.saml.ext.saml2mdrpi.RegistrationPolicy;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Concrete Implementation of {@link RegistrationInfo}.
*/
public class RegistrationInfoImpl extends AbstractXMLObject implements RegistrationInfo {
/** The policies. */
- private XMLObjectChildrenList<RegistrationPolicy> registrationPolicies;
+ @Nonnull private final XMLObjectChildrenList<RegistrationPolicy> registrationPolicies;
/** The authority. */
- private String registrationAuthority;
+ @Nullable private String registrationAuthority;
/** The registration instant. */
- private Instant registrationInstant;
+ @Nullable private Instant registrationInstant;
/**
* Constructor.
@@ -49,48 +56,40 @@ public class RegistrationInfoImpl extends AbstractXMLObject implements Registrat
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected RegistrationInfoImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected RegistrationInfoImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
registrationPolicies = new IndexedXMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public String getRegistrationAuthority() {
+ @Nullable public String getRegistrationAuthority() {
return registrationAuthority;
}
/** {@inheritDoc} */
- @Override
- public void setRegistrationAuthority(final String authority) {
+ public void setRegistrationAuthority(@Nullable final String authority) {
registrationAuthority = prepareForAssignment(registrationAuthority, authority);
}
/** {@inheritDoc} */
- @Override
- public Instant getRegistrationInstant() {
+ @Nullable public Instant getRegistrationInstant() {
return registrationInstant;
}
/** {@inheritDoc} */
- @Override
- public void setRegistrationInstant(final Instant dateTime) {
+ public void setRegistrationInstant(@Nullable final Instant dateTime) {
registrationInstant = prepareForAssignment(registrationInstant, dateTime);
}
/** {@inheritDoc} */
- @Override
- public List<RegistrationPolicy> getRegistrationPolicies() {
+ @Nonnull @Live public List<RegistrationPolicy> getRegistrationPolicies() {
return registrationPolicies;
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getOrderedChildren() {
- final ArrayList<XMLObject> children = new ArrayList<>();
- children.addAll(registrationPolicies);
- return children;
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return CollectionSupport.copyToList(registrationPolicies);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyImpl.java
index 02933d864..a333037d2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.saml2mdrpi.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdrpi.RegistrationPolicy;
import org.opensaml.saml.saml2.metadata.impl.LocalizedURIImpl;
@@ -32,8 +35,8 @@ public class RegistrationPolicyImpl extends LocalizedURIImpl implements Registra
* @param elementLocalName elementLocalName
* @param namespacePrefix namespacePrefix
*/
- protected RegistrationPolicyImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected RegistrationPolicyImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyImpl.java
index 419eb12da..968566186 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.saml2mdrpi.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdrpi.UsagePolicy;
import org.opensaml.saml.saml2.metadata.impl.LocalizedURIImpl;
@@ -32,7 +35,8 @@ public class UsagePolicyImpl extends LocalizedURIImpl implements UsagePolicy {
* @param elementLocalName local name
* @param namespacePrefix prefix
*/
- protected UsagePolicyImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected UsagePolicyImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionImpl.java
index 089e34ace..931af0e82 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionImpl.java
@@ -17,11 +17,14 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdui.Description;
import org.opensaml.saml.saml2.metadata.impl.LocalizedNameImpl;
/**
- * Concrete implementation of {@link org.opensaml.saml.ext.saml2mdui.Description}.
+ * Concrete implementation of {@link Description}.
*/
public class DescriptionImpl extends LocalizedNameImpl implements Description {
@@ -32,8 +35,9 @@ public class DescriptionImpl extends LocalizedNameImpl implements Description {
* @param elementLocalName the elementLocalName
* @param namespacePrefix the namespacePrefix
*/
- protected DescriptionImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected DescriptionImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsImpl.java
index 84ea5cf39..cf0cd5fd5 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsImpl.java
@@ -17,9 +17,10 @@
package org.opensaml.saml.ext.saml2mdui.impl;
-import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.opensaml.core.xml.AbstractXMLObject;
@@ -30,11 +31,17 @@ import org.opensaml.saml.ext.saml2mdui.DomainHint;
import org.opensaml.saml.ext.saml2mdui.GeolocationHint;
import org.opensaml.saml.ext.saml2mdui.IPHint;
-/** Concrete implementation of {@link org.opensaml.saml.ext.saml2mdui.DiscoHints}. */
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
+/** Concrete implementation of {@link DiscoHints}. */
+ at SuppressWarnings("unchecked")
public class DiscoHintsImpl extends AbstractXMLObject implements DiscoHints {
/** Children of the UIInfo. */
- private final IndexedXMLObjectChildrenList<XMLObject> discoHintsChildren;
+ @Nonnull private final IndexedXMLObjectChildrenList<XMLObject> discoHintsChildren;
/**
* Constructor.
@@ -43,47 +50,40 @@ public class DiscoHintsImpl extends AbstractXMLObject implements DiscoHints {
* @param elementLocalName elementLocalName
* @param namespacePrefix namespacePrefix
*/
- protected DiscoHintsImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected DiscoHintsImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
discoHintsChildren = new IndexedXMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getXMLObjects() {
+ @Nonnull @Live public List<XMLObject> getXMLObjects() {
return discoHintsChildren;
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getXMLObjects(final QName typeOrName) {
+ @Nonnull @Live public List<XMLObject> getXMLObjects(@Nonnull final QName typeOrName) {
return (List<XMLObject>) discoHintsChildren.subList(typeOrName);
}
/** {@inheritDoc} */
- @Override
- public List<DomainHint> getDomainHints() {
+ @Nonnull @Live public List<DomainHint> getDomainHints() {
return (List<DomainHint>) discoHintsChildren.subList(DomainHint.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<GeolocationHint> getGeolocationHints() {
+ @Nonnull @Live public List<GeolocationHint> getGeolocationHints() {
return (List<GeolocationHint>) discoHintsChildren.subList(GeolocationHint.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<IPHint> getIPHints() {
+ @Nonnull @Live public List<IPHint> getIPHints() {
return (List<IPHint>) discoHintsChildren.subList(IPHint.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getOrderedChildren() {
- final ArrayList<XMLObject> children = new ArrayList<>();
-
- children.addAll(discoHintsChildren);
- return children;
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return CollectionSupport.copyToList(discoHintsChildren);
}
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameImpl.java
index 63edab96d..6b6ddee9e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameImpl.java
@@ -17,12 +17,15 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdui.DisplayName;
import org.opensaml.saml.saml2.metadata.impl.LocalizedNameImpl;
/**
- * Concrete implementation of {@link org.opensaml.saml.ext.saml2mdui.DisplayName}.
+ * Concrete implementation of {@link DisplayName}.
*/
public class DisplayNameImpl extends LocalizedNameImpl implements DisplayName {
@@ -33,7 +36,8 @@ public class DisplayNameImpl extends LocalizedNameImpl implements DisplayName {
* @param elementLocalName the elementLocalName
* @param namespacePrefix the namespacePrefix
*/
- protected DisplayNameImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected DisplayNameImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintImpl.java
index 415cc03a2..606a4f802 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.impl.XSStringImpl;
import org.opensaml.saml.ext.saml2mdui.DomainHint;
@@ -32,7 +35,8 @@ public class DomainHintImpl extends XSStringImpl implements DomainHint{
* @param elementLocalName the elementLocalName
* @param namespacePrefix the namespacePrefix
*/
- protected DomainHintImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected DomainHintImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintImpl.java
index fc72fcd57..5815a4525 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.impl.XSURIImpl;
import org.opensaml.saml.ext.saml2mdui.GeolocationHint;
@@ -32,8 +35,8 @@ public class GeolocationHintImpl extends XSURIImpl implements GeolocationHint {
* @param elementLocalName the elementLocalName
* @param namespacePrefix the namespacePrefix
*/
- protected GeolocationHintImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected GeolocationHintImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintImpl.java
index 74eeaad9b..80a2effff 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintImpl.java
@@ -17,11 +17,14 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.impl.XSStringImpl;
import org.opensaml.saml.ext.saml2mdui.IPHint;
/**
- * Concrete implementation of {@link org.opensaml.saml.ext.saml2mdui.IPHint}.
+ * Concrete implementation of {@link IPHint}.
*/
public class IPHintImpl extends XSStringImpl implements IPHint {
@@ -32,7 +35,8 @@ public class IPHintImpl extends XSStringImpl implements IPHint {
* @param elementLocalName the elementLocalName
* @param namespacePrefix the namespacePrefix
*/
- protected IPHintImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected IPHintImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLImpl.java
index 83e398db8..4437b6f0d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLImpl.java
@@ -17,12 +17,14 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdui.InformationURL;
import org.opensaml.saml.saml2.metadata.impl.LocalizedURIImpl;
/**
- * Concrete implementation of {@link org.opensaml.saml.ext.saml2mdui.InformationURL}.
- * @author Rod Widdowson
+ * Concrete implementation of {@link InformationURL}.
*/
public class InformationURLImpl extends LocalizedURIImpl implements InformationURL {
@@ -34,9 +36,9 @@ public class InformationURLImpl extends LocalizedURIImpl implements InformationU
* @param elementLocalName the elementLocalName
* @param namespacePrefix the namespacePrefix
*/
- protected InformationURLImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected InformationURLImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsImpl.java
index c93705f10..7dc6ac90a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsImpl.java
@@ -17,11 +17,10 @@
package org.opensaml.saml.ext.saml2mdui.impl;
-import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.LangBearing;
@@ -30,15 +29,21 @@ import org.opensaml.saml.ext.saml2mdui.Keywords;
import com.google.common.base.Strings;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+
/**
- * Concrete Implementation of {@link org.opensaml.saml.ext.saml2mdui.Keywords}.
+ * Concrete implementation of {@link Keywords}.
*/
public class KeywordsImpl extends AbstractXMLObject implements Keywords {
/** The language. */
- private String lang;
+ @Nullable private String lang;
+
/** The data. */
- @Nonnull private List<String> data = Collections.emptyList();
+ @Nullable private List<String> data;
+
/**
* Constructor.
*
@@ -46,35 +51,30 @@ public class KeywordsImpl extends AbstractXMLObject implements Keywords {
* @param elementLocalName the local name
* @param namespacePrefix the prefix
*/
- protected KeywordsImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected KeywordsImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
-
- /** {@inheritDoc} */
- public List<XMLObject> getOrderedChildren() {
- return null;
- }
-
/** {@inheritDoc} */
- public String getXMLLang() {
+ @Nullable public String getXMLLang() {
return lang;
}
/** {@inheritDoc} */
- public void setXMLLang(final String newLang) {
+ public void setXMLLang(@Nullable final String newLang) {
final boolean hasValue = newLang != null && !Strings.isNullOrEmpty(newLang);
lang = prepareForAssignment(lang, newLang);
manageQualifiedAttributeNamespace(LangBearing.XML_LANG_ATTR_NAME, hasValue);
}
/** {@inheritDoc} */
- public List<String> getKeywords() {
+ @Nullable @Live public List<String> getKeywords() {
return data;
}
/** {@inheritDoc} */
- public void setKeywords(final List<String> val) {
+ public void setKeywords(@Nullable final List<String> val) {
data = prepareForAssignment(data, val);
}
@@ -82,9 +82,11 @@ public class KeywordsImpl extends AbstractXMLObject implements Keywords {
* {@inheritDoc}
*/
public int hashCode() {
- int hash = lang == null ? 12 :lang.hashCode();
- for (final String s: data) {
- hash = hash * 31 + s.hashCode();
+ int hash = lang != null ? lang.hashCode() : 12;
+ if (data != null) {
+ for (final String s : data) {
+ hash = hash * 31 + s.hashCode();
+ }
}
return hash;
}
@@ -96,32 +98,24 @@ public class KeywordsImpl extends AbstractXMLObject implements Keywords {
}
final Keywords other = (Keywords) obj;
- if (lang == null) {
- if (other.getXMLLang() != null) {
- return false;
- }
- } else if (!lang.equals(other.getXMLLang())) {
+ if (lang != null && !lang.equals(other.getXMLLang())) {
return false;
- }
-
- List<String> otherList = other.getKeywords();
- if (otherList == null) {
- otherList = Collections.emptyList();
- }
-
- if (otherList.size() != data.size()) {
+ } else if (other.getXMLLang() != null) {
return false;
}
- final Iterator<String> me = data.iterator();
- final Iterator<String> him = otherList.iterator();
-
- while (me.hasNext()) {
- if (!me.next().equals(him.next())) {
- return false;
- }
+ final List<String> ourList = getKeywords();
+ final List<String> otherList = other.getKeywords();
+ if (ourList == null) {
+ return otherList == null;
}
- return true;
+
+ return ourList.equals(otherList);
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return null;
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoImpl.java
index b33e595a5..a01f8213e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdui.Logo;
import org.opensaml.saml.saml2.metadata.impl.LocalizedURIImpl;
@@ -27,10 +30,10 @@ import org.opensaml.saml.saml2.metadata.impl.LocalizedURIImpl;
public class LogoImpl extends LocalizedURIImpl implements Logo {
/** X-Dimension of the logo. */
- private Integer width;
+ @Nullable private Integer width;
/** Y-Dimension of the logo. */
- private Integer height;
+ @Nullable private Integer height;
/**
* Constructor.
@@ -39,28 +42,28 @@ public class LogoImpl extends LocalizedURIImpl implements Logo {
* @param elementLocalName elementLocalName
* @param namespacePrefix namespacePrefix
*/
- protected LogoImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected LogoImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
-
/** {@inheritDoc} */
- public Integer getHeight() {
+ @Nullable public Integer getHeight() {
return height;
}
/** {@inheritDoc} */
- public void setHeight(final Integer newHeight) {
+ public void setHeight(@Nullable final Integer newHeight) {
height = prepareForAssignment(height, newHeight);
}
/** {@inheritDoc} */
- public Integer getWidth() {
+ @Nullable public Integer getWidth() {
return width;
}
/** {@inheritDoc} */
- public void setWidth(final Integer newWidth) {
+ public void setWidth(@Nullable final Integer newWidth) {
width = prepareForAssignment(width, newWidth);
}
@@ -74,8 +77,8 @@ public class LogoImpl extends LocalizedURIImpl implements Logo {
@Override
public int hashCode() {
int hash = super.hashCode();
- hash = hash * 31 + height;
- hash = hash * 31 + width;
+ hash = hash * 31 + (height != null ? height : 0);
+ hash = hash * 31 + (width != null ? width : 0);
return hash;
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLImpl.java
index afeaa90fd..d8b6c00ad 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLImpl.java
@@ -17,15 +17,16 @@
package org.opensaml.saml.ext.saml2mdui.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.saml2mdui.PrivacyStatementURL;
import org.opensaml.saml.saml2.metadata.impl.LocalizedURIImpl;
/**
- * Concrete implementation of {@link org.opensaml.saml.ext.saml2mdui.PrivacyStatementURL}.
- * @author Rod Widdowson
+ * Concrete implementation of {@link PrivacyStatementURL}.
*/
-
public class PrivacyStatementURLImpl extends LocalizedURIImpl implements PrivacyStatementURL {
/**
@@ -35,9 +36,9 @@ public class PrivacyStatementURLImpl extends LocalizedURIImpl implements Privacy
* @param elementLocalName the elementLocalName
* @param namespacePrefix the namespacePrefix
*/
- protected PrivacyStatementURLImpl(final String namespaceURI, final String elementLocalName,
- final String namespacePrefix) {
+ protected PrivacyStatementURLImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoImpl.java
index 4f5069ace..b8827d9a1 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoImpl.java
@@ -17,9 +17,10 @@
package org.opensaml.saml.ext.saml2mdui.impl;
-import java.util.ArrayList;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import javax.xml.namespace.QName;
import org.opensaml.core.xml.AbstractXMLObject;
@@ -33,14 +34,19 @@ import org.opensaml.saml.ext.saml2mdui.Logo;
import org.opensaml.saml.ext.saml2mdui.PrivacyStatementURL;
import org.opensaml.saml.ext.saml2mdui.UIInfo;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
- * Concrete implementation of {@link org.opensaml.saml.ext.saml2mdui.UIInfo}.
- * @author Rod Widdowson
+ * Concrete implementation of {@link UIInfo}.
*/
+ at SuppressWarnings("unchecked")
public class UIInfoImpl extends AbstractXMLObject implements UIInfo {
/** Children of the UIInfo. */
- private final IndexedXMLObjectChildrenList<XMLObject> uiInfoChildren;
+ @Nonnull private final IndexedXMLObjectChildrenList<XMLObject> uiInfoChildren;
/**
* Constructor.
@@ -48,67 +54,56 @@ public class UIInfoImpl extends AbstractXMLObject implements UIInfo {
* @param elementLocalName elementLocalName
* @param namespacePrefix namespacePrefix
*/
- protected UIInfoImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected UIInfoImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
uiInfoChildren = new IndexedXMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getXMLObjects() {
+ @Nonnull @Live public List<XMLObject> getXMLObjects() {
return uiInfoChildren;
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getXMLObjects(final QName typeOrName) {
+ @Nonnull @Live public List<XMLObject> getXMLObjects(@Nonnull final QName typeOrName) {
return (List<XMLObject>) uiInfoChildren.subList(typeOrName);
}
/** {@inheritDoc} */
- @Override
- public List<Description> getDescriptions() {
+ @Nonnull @Live public List<Description> getDescriptions() {
return (List<Description>) uiInfoChildren.subList(Description.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<DisplayName> getDisplayNames() {
+ @Nonnull @Live public List<DisplayName> getDisplayNames() {
return (List<DisplayName>) uiInfoChildren.subList(DisplayName.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<Keywords> getKeywords() {
+ @Nonnull @Live public List<Keywords> getKeywords() {
return (List<Keywords>) uiInfoChildren.subList(Keywords.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<InformationURL> getInformationURLs() {
+ @Nonnull @Live public List<InformationURL> getInformationURLs() {
return (List<InformationURL>) uiInfoChildren.subList(InformationURL.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<Logo> getLogos() {
+ @Nonnull @Live public List<Logo> getLogos() {
return (List<Logo>) uiInfoChildren.subList(Logo.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<PrivacyStatementURL> getPrivacyStatementURLs() {
+ @Nonnull @Live public List<PrivacyStatementURL> getPrivacyStatementURLs() {
return (List<PrivacyStatementURL>) uiInfoChildren.subList(PrivacyStatementURL.DEFAULT_ELEMENT_NAME);
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getOrderedChildren() {
- final ArrayList<XMLObject> children = new ArrayList<>();
-
- children.addAll(uiInfoChildren);
- return children;
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
+ return CollectionSupport.copyToList(uiInfoChildren);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeImpl.java
index 427da95ce..c3af84e7b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeImpl.java
@@ -18,6 +18,10 @@
package org.opensaml.saml.ext.samlec.impl;
import org.opensaml.saml.ext.samlec.EncType;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.impl.XSStringImpl;
/**
@@ -32,7 +36,9 @@ public class EncTypeImpl extends XSStringImpl implements EncType {
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected EncTypeImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected EncTypeImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyImpl.java
index 66e70f067..ff0f70359 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.samlec.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.schema.XSBooleanValue;
import org.opensaml.core.xml.schema.impl.XSBase64BinaryImpl;
import org.opensaml.saml.ext.samlec.GeneratedKey;
@@ -29,10 +32,10 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
public class GeneratedKeyImpl extends XSBase64BinaryImpl implements GeneratedKey {
/** soap11:actor attribute. */
- private String soap11Actor;
+ @Nullable private String soap11Actor;
/** soap11:mustUnderstand. */
- private XSBooleanValue soap11MustUnderstand;
+ @Nullable private XSBooleanValue soap11MustUnderstand;
/**
* Constructor.
@@ -41,12 +44,13 @@ public class GeneratedKeyImpl extends XSBase64BinaryImpl implements GeneratedKey
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected GeneratedKeyImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected GeneratedKeyImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
/** {@inheritDoc} */
- public Boolean isSOAP11MustUnderstand() {
+ @Nullable public Boolean isSOAP11MustUnderstand() {
if (soap11MustUnderstand != null) {
return soap11MustUnderstand.getValue();
}
@@ -54,12 +58,12 @@ public class GeneratedKeyImpl extends XSBase64BinaryImpl implements GeneratedKey
}
/** {@inheritDoc} */
- public XSBooleanValue isSOAP11MustUnderstandXSBoolean() {
+ @Nullable public XSBooleanValue isSOAP11MustUnderstandXSBoolean() {
return soap11MustUnderstand;
}
/** {@inheritDoc} */
- public void setSOAP11MustUnderstand(final Boolean newMustUnderstand) {
+ public void setSOAP11MustUnderstand(@Nullable final Boolean newMustUnderstand) {
if (newMustUnderstand != null) {
soap11MustUnderstand = prepareForAssignment(soap11MustUnderstand,
new XSBooleanValue(newMustUnderstand, true));
@@ -71,20 +75,21 @@ public class GeneratedKeyImpl extends XSBase64BinaryImpl implements GeneratedKey
}
/** {@inheritDoc} */
- public void setSOAP11MustUnderstand(final XSBooleanValue newMustUnderstand) {
+ public void setSOAP11MustUnderstand(@Nullable final XSBooleanValue newMustUnderstand) {
soap11MustUnderstand = prepareForAssignment(soap11MustUnderstand, newMustUnderstand);
manageQualifiedAttributeNamespace(MustUnderstandBearing.SOAP11_MUST_UNDERSTAND_ATTR_NAME,
soap11MustUnderstand != null);
}
/** {@inheritDoc} */
- public String getSOAP11Actor() {
+ @Nullable public String getSOAP11Actor() {
return soap11Actor;
}
/** {@inheritDoc} */
- public void setSOAP11Actor(final String newActor) {
+ public void setSOAP11Actor(@Nullable final String newActor) {
soap11Actor = prepareForAssignment(soap11Actor, newActor);
manageQualifiedAttributeNamespace(ActorBearing.SOAP11_ACTOR_ATTR_NAME, soap11Actor != null);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyImpl.java
index ba66821d5..2775d3574 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyImpl.java
@@ -18,9 +18,11 @@
package org.opensaml.saml.ext.samlec.impl;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.core.xml.AbstractXMLObject;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.schema.XSBooleanValue;
@@ -31,6 +33,11 @@ import org.opensaml.soap.soap11.ActorBearing;
import org.opensaml.soap.soap11.MustUnderstandBearing;
import org.opensaml.xmlsec.signature.KeyInfo;
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotLive;
+import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.collection.CollectionSupport;
+
/**
* Concrete implementation of {@link SessionKey}.
@@ -38,19 +45,19 @@ import org.opensaml.xmlsec.signature.KeyInfo;
public class SessionKeyImpl extends AbstractXMLObject implements SessionKey {
/** soap11:actor attribute. */
- private String soap11Actor;
+ @Nullable private String soap11Actor;
/** soap11:mustUnderstand. */
- private XSBooleanValue soap11MustUnderstand;
+ @Nullable private XSBooleanValue soap11MustUnderstand;
/** Algorithm attribute. */
- private String algorithm;
+ @Nullable private String algorithm;
/** EncType children. */
- private XMLObjectChildrenList<EncType> encTypes;
+ @Nonnull private final XMLObjectChildrenList<EncType> encTypes;
/** KeyInfo child. */
- private KeyInfo keyInfo;
+ @Nullable private KeyInfo keyInfo;
/**
* Constructor.
@@ -59,15 +66,15 @@ public class SessionKeyImpl extends AbstractXMLObject implements SessionKey {
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected SessionKeyImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected SessionKeyImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
encTypes = new XMLObjectChildrenList<>(this);
}
/** {@inheritDoc} */
- @Override
- public Boolean isSOAP11MustUnderstand() {
+ @Nullable public Boolean isSOAP11MustUnderstand() {
if (soap11MustUnderstand != null) {
return soap11MustUnderstand.getValue();
}
@@ -75,14 +82,12 @@ public class SessionKeyImpl extends AbstractXMLObject implements SessionKey {
}
/** {@inheritDoc} */
- @Override
- public XSBooleanValue isSOAP11MustUnderstandXSBoolean() {
+ @Nullable public XSBooleanValue isSOAP11MustUnderstandXSBoolean() {
return soap11MustUnderstand;
}
/** {@inheritDoc} */
- @Override
- public void setSOAP11MustUnderstand(final Boolean newMustUnderstand) {
+ public void setSOAP11MustUnderstand(@Nullable final Boolean newMustUnderstand) {
if (newMustUnderstand != null) {
soap11MustUnderstand = prepareForAssignment(soap11MustUnderstand,
new XSBooleanValue(newMustUnderstand, true));
@@ -94,59 +99,50 @@ public class SessionKeyImpl extends AbstractXMLObject implements SessionKey {
}
/** {@inheritDoc} */
- @Override
- public void setSOAP11MustUnderstand(final XSBooleanValue newMustUnderstand) {
+ public void setSOAP11MustUnderstand(@Nullable final XSBooleanValue newMustUnderstand) {
soap11MustUnderstand = prepareForAssignment(soap11MustUnderstand, newMustUnderstand);
manageQualifiedAttributeNamespace(MustUnderstandBearing.SOAP11_MUST_UNDERSTAND_ATTR_NAME,
soap11MustUnderstand != null);
}
/** {@inheritDoc} */
- @Override
public String getSOAP11Actor() {
return soap11Actor;
}
/** {@inheritDoc} */
- @Override
- public void setSOAP11Actor(final String newActor) {
+ public void setSOAP11Actor(@Nullable final String newActor) {
soap11Actor = prepareForAssignment(soap11Actor, newActor);
manageQualifiedAttributeNamespace(ActorBearing.SOAP11_ACTOR_ATTR_NAME, soap11Actor != null);
}
/** {@inheritDoc} */
- @Override
- public String getAlgorithm() {
+ @Nullable public String getAlgorithm() {
return algorithm;
}
/** {@inheritDoc} */
- @Override
- public void setAlgorithm(final String newAlgorithm) {
+ public void setAlgorithm(@Nullable final String newAlgorithm) {
algorithm = prepareForAssignment(algorithm, newAlgorithm);
}
/** {@inheritDoc} */
- @Override
- public List<EncType> getEncTypes() {
+ @Nonnull @Live public List<EncType> getEncTypes() {
return encTypes;
}
/** {@inheritDoc} */
- @Override
- public KeyInfo getKeyInfo() {
+ @Nullable public KeyInfo getKeyInfo() {
return keyInfo;
}
/** {@inheritDoc} */
- @Override
- public void setKeyInfo(final KeyInfo newKeyInfo) {
+ public void setKeyInfo(@Nullable final KeyInfo newKeyInfo) {
keyInfo = prepareForAssignment(keyInfo, newKeyInfo);
}
/** {@inheritDoc} */
- @Override
- public List<XMLObject> getOrderedChildren() {
+ @Nullable @NotLive @Unmodifiable public List<XMLObject> getOrderedChildren() {
final ArrayList<XMLObject> children = new ArrayList<>();
children.addAll(encTypes);
@@ -155,6 +151,7 @@ public class SessionKeyImpl extends AbstractXMLObject implements SessionKey {
children.add(keyInfo);
}
- return Collections.unmodifiableList(children);
+ return CollectionSupport.copyToList(children);
}
+
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToImpl.java
index 858ba1a1b..8f324ea69 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToImpl.java
@@ -17,6 +17,9 @@
package org.opensaml.saml.ext.samlpthrpty.impl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.ext.samlpthrpty.RespondTo;
import org.opensaml.saml.saml2.core.impl.AbstractNameIDType;
@@ -32,7 +35,9 @@ public class RespondToImpl extends AbstractNameIDType implements RespondTo {
* @param elementLocalName the local name of the XML element this Object represents
* @param namespacePrefix the prefix for the given namespace
*/
- protected RespondToImpl(final String namespaceURI, final String elementLocalName, final String namespacePrefix) {
+ protected RespondToImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+ @Nullable final String namespacePrefix) {
super(namespaceURI, elementLocalName, namespacePrefix);
}
+
}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list