[java-opensaml] branch main updated: IDP-2069 - Null Handling Task

Scott Cantor cantor.2 at osu.edu
Mon Mar 27 17:43:43 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=17dae24bf63fc8e735f4d7b30553bc063fc3f7c5

The following commit(s) were added to refs/heads/main by this push:
     new 17dae24bf IDP-2069 - Null Handling Task
17dae24bf is described below

commit 17dae24bf63fc8e735f4d7b30553bc063fc3f7c5
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Mar 27 13:43:40 2023 -0400

    IDP-2069 - Null Handling Task
    
    https://shibboleth.atlassian.net/browse/IDP-2069
    
    Annotate and cleanup remaining XMLObject classes.
---
 .../saml/ext/idpdisco/DiscoveryResponse.java       |  4 +-
 .../saml/ext/reqattr/RequestedAttributes.java      |  3 +-
 .../org/opensaml/saml/ext/saml1md/SourceID.java    |  4 +-
 .../opensaml/saml/ext/saml2alg/DigestMethod.java   | 14 +++----
 .../opensaml/saml/ext/saml2alg/SigningMethod.java  | 26 ++++++------
 .../opensaml/saml/ext/saml2aslo/Asynchronous.java  |  8 ++--
 .../opensaml/saml/ext/saml2cb/ChannelBindings.java | 15 +++----
 .../saml/ext/saml2delrestrict/Delegate.java        | 35 ++++++++--------
 .../DelegationRestrictionType.java                 |  9 ++--
 .../saml/ext/saml2mdattr/EntityAttributes.java     | 17 ++++----
 .../saml/ext/saml2mdquery/ActionNamespace.java     |  4 +-
 .../saml2mdquery/AttributeQueryDescriptorType.java |  7 ++--
 .../ext/saml2mdquery/AuthnQueryDescriptorType.java |  4 +-
 .../AuthzDecisionQueryDescriptorType.java          |  7 ++--
 .../saml/ext/saml2mdquery/QueryDescriptorType.java | 18 ++++----
 .../saml/ext/saml2mdreqinit/RequestInitiator.java  |  6 +--
 .../opensaml/saml/ext/saml2mdrpi/Publication.java  | 28 ++++++-------
 .../saml/ext/saml2mdrpi/PublicationInfo.java       | 31 +++++++-------
 .../saml/ext/saml2mdrpi/PublicationPath.java       | 11 ++---
 .../saml/ext/saml2mdrpi/RegistrationInfo.java      | 25 +++++------
 .../opensaml/saml/ext/saml2mdui/Description.java   |  4 +-
 .../opensaml/saml/ext/saml2mdui/DiscoHints.java    | 19 +++++----
 .../opensaml/saml/ext/saml2mdui/DisplayName.java   |  4 +-
 .../saml/ext/saml2mdui/InformationURL.java         |  4 +-
 .../org/opensaml/saml/ext/saml2mdui/Keywords.java  | 13 +++---
 .../java/org/opensaml/saml/ext/saml2mdui/Logo.java |  8 ++--
 .../saml/ext/saml2mdui/PrivacyStatementURL.java    |  4 +-
 .../org/opensaml/saml/ext/saml2mdui/UIInfo.java    | 25 +++++------
 .../java/org/opensaml/saml/ext/samlec/EncType.java |  4 +-
 .../org/opensaml/saml/ext/samlec/GeneratedKey.java |  8 ++--
 .../org/opensaml/saml/ext/samlec/SessionKey.java   | 20 ++++-----
 .../opensaml/saml/ext/samlpthrpty/RespondTo.java   |  4 +-
 .../java/org/opensaml/saml/saml1/core/Advice.java  |  6 +--
 .../org/opensaml/saml/saml1/core/Assertion.java    | 14 +++----
 .../org/opensaml/saml/saml1/core/Attribute.java    |  4 +-
 .../saml/saml1/core/AttributeStatement.java        | 11 ++---
 .../saml1/core/AudienceRestrictionCondition.java   | 11 ++---
 .../saml/saml1/core/AuthenticationQuery.java       | 15 +++----
 .../saml/saml1/core/AuthenticationStatement.java   | 48 ++++++++++++----------
 .../opensaml/saml/saml1/core/AuthorityBinding.java | 27 ++++++------
 .../saml1/core/AuthorizationDecisionQuery.java     | 22 +++++-----
 .../saml1/core/AuthorizationDecisionStatement.java | 28 +++++++------
 .../org/opensaml/saml/saml1/core/Condition.java    |  8 ++--
 .../org/opensaml/saml/saml1/core/Conditions.java   | 19 +++++----
 .../saml/saml1/core/DoNotCacheCondition.java       |  8 ++--
 .../org/opensaml/saml/saml1/core/Evidence.java     | 15 +++----
 .../opensaml/saml/saml1/core/NameIdentifier.java   | 30 +++++++-------
 .../java/org/opensaml/saml/saml1/core/Query.java   |  8 ++--
 .../java/org/opensaml/saml/saml1/core/Request.java | 26 ++++++------
 .../saml/saml1/core/RequestAbstractType.java       | 26 +++++++-----
 .../org/opensaml/saml/saml1/core/RespondWith.java  |  4 +-
 .../org/opensaml/saml/saml1/core/Response.java     | 18 ++++----
 .../saml/saml1/core/ResponseAbstractType.java      | 35 ++++++++--------
 .../org/opensaml/saml/saml1/core/Statement.java    |  8 ++--
 .../java/org/opensaml/saml/saml1/core/Status.java  | 21 +++++-----
 .../org/opensaml/saml/saml1/core/StatusCode.java   | 39 +++++++++---------
 .../org/opensaml/saml/saml1/core/StatusDetail.java |  9 ++--
 .../opensaml/saml/saml1/core/StatusMessage.java    | 21 ----------
 .../java/org/opensaml/saml/saml1/core/Subject.java | 18 ++++----
 .../saml/saml1/core/SubjectConfirmation.java       | 20 +++++----
 .../opensaml/saml/saml1/core/SubjectLocality.java  | 20 ++++-----
 .../org/opensaml/saml/saml1/core/SubjectQuery.java | 12 +++---
 .../opensaml/saml/saml1/core/SubjectStatement.java | 13 +++---
 .../idpdisco/impl/DiscoveryResponseBuilder.java    | 12 ++----
 .../ext/idpdisco/impl/DiscoveryResponseImpl.java   |  7 +++-
 .../saml2/metadata/impl/IndexedEndpointImpl.java   | 22 ++++++----
 66 files changed, 514 insertions(+), 484 deletions(-)

diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java
index 6f7045de0..26775bbf8 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java
@@ -29,9 +29,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface DiscoveryResponse extends IndexedEndpoint {
 
     /** Name of the element inside the Extensions. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoveryResponse";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoveryResponse";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML_IDP_DISCO_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML_IDP_DISCO_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/reqattr/RequestedAttributes.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/reqattr/RequestedAttributes.java
index 5ba595b36..18989549a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/reqattr/RequestedAttributes.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/reqattr/RequestedAttributes.java
@@ -26,6 +26,7 @@ import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.RequestedAttribute;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -59,6 +60,6 @@ public interface RequestedAttributes extends SAMLObject {
      * 
      * @return list of child RequestedAttribute s
      */
-    List<RequestedAttribute> getRequestedAttributes();
+    @Nonnull @Live List<RequestedAttribute> getRequestedAttributes();
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java
index e09a6af75..bd5f25790 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java
@@ -32,9 +32,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface SourceID extends SAMLObject, XSString {
     
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SourceID";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "SourceID";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1MD_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1MD_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/DigestMethod.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/DigestMethod.java
index 7f522c100..c27911d37 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/DigestMethod.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/DigestMethod.java
@@ -31,34 +31,34 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface DigestMethod extends SAMLObject, ElementExtensibleXMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DigestMethod";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "DigestMethod";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20ALG_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20ALG_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "DigestMethodType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "DigestMethodType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20ALG_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20ALG_PREFIX);
     
     /** Algorithm attribute name. */
-    @Nonnull @NotEmpty public static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
+    @Nonnull @NotEmpty static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
     
     /**
      * Get the value of the Algorithm URI attribute.
      * 
      * @return the algorithm URI
      */
-    @Nullable public String getAlgorithm();
+    @Nullable String getAlgorithm();
     
     /**
      * Get the value of the Algorithm URI attribute.
      * 
      * @param value the algorithm URI
      */
-    public void setAlgorithm(@Nullable final String value);
+    void setAlgorithm(@Nullable final String value);
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/SigningMethod.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/SigningMethod.java
index d869d3cc6..25ae8b5bf 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/SigningMethod.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2alg/SigningMethod.java
@@ -31,68 +31,68 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface SigningMethod extends SAMLObject, ElementExtensibleXMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SigningMethod";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "SigningMethod";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20ALG_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20ALG_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "SigningMethodType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "SigningMethodType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20ALG_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20ALG_PREFIX);
     
     /** Algorithm attribute name. */
-    @Nonnull @NotEmpty public static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
+    @Nonnull @NotEmpty static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
     
     /** MinKeySize attribute name. */
-    @Nonnull @NotEmpty public static final String MIN_KEY_SIZE_ATTRIB_NAME = "MinKeySize";
+    @Nonnull @NotEmpty static final String MIN_KEY_SIZE_ATTRIB_NAME = "MinKeySize";
     
     /** MaxKeySize attribute name. */
-    @Nonnull @NotEmpty public static final String MAX_KEY_SIZE_ATTRIB_NAME = "MaxKeySize";
+    @Nonnull @NotEmpty static final String MAX_KEY_SIZE_ATTRIB_NAME = "MaxKeySize";
     
     /**
      * Get the value of the Algorithm URI attribute.
      * 
      * @return the algorithm URI
      */
-    @Nullable public String getAlgorithm();
+    @Nullable String getAlgorithm();
     
     /**
      * Get the value of the Algorithm URI attribute.
      * 
      * @param value the algorithm URI
      */
-    public void setAlgorithm(@Nullable final String value);
+    void setAlgorithm(@Nullable final String value);
     
     /**
      * Get the value of the MinKeySize attribute.
      * 
      * @return the MinKeySize value
      */
-    @Nullable public Integer getMinKeySize();
+    @Nullable Integer getMinKeySize();
     
     /**
      * Set the value of the MinKeySize attribute.
      * 
      * @param value the MinKeySize value
      */
-    public void setMinKeySize(@Nullable Integer value);
+    void setMinKeySize(@Nullable Integer value);
     
     /**
      * Get the value of the MaxKeySize attribute.
      * 
      * @return the MaxKeySize value
      */
-    @Nullable public Integer getMaxKeySize();
+    @Nullable Integer getMaxKeySize();
     
     /**
      * Set the value of the MaxKeySize attribute.
      * 
      * @param value the MaxKeySize value
      */
-    public void setMaxKeySize(@Nullable Integer value);
+    void setMaxKeySize(@Nullable Integer value);
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java
index c56aba2b2..3937e2c8e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java
@@ -35,16 +35,16 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Asynchronous extends SAMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Asynchronous";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Asynchronous";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20PASLO_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20PASLO_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AsynchronousType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AsynchronousType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20PASLO_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20PASLO_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20PASLO_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java
index b61b95d30..7d0781493 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java
@@ -22,6 +22,7 @@
 package org.opensaml.saml.ext.saml2cb;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBase64Binary;
@@ -39,33 +40,33 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface ChannelBindings extends XSBase64Binary, MustUnderstandBearing, ActorBearing, SAMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ChannelBindings";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "ChannelBindings";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20CB_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20CB_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "ChannelBindingsType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "ChannelBindingsType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20CB_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20CB_PREFIX);
 
     /** Type attribute name. */
-    @Nonnull @NotEmpty public static final String TYPE_ATTRIB_NAME = "Type";
+    @Nonnull @NotEmpty static final String TYPE_ATTRIB_NAME = "Type";
 
     /**
      * Get the Type attribute value.
      * 
      * @return the Type attribute value
      */
-    public String getType();
+    @Nullable String getType();
     
     /**
      * Set the Type attribute value.
      * 
      * @param newType the new Type attribute value
      */
-    public void setType(@Nonnull String newType);
+    void setType(@Nullable final String newType);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java
index 870e17d11..70777bece 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java
@@ -20,6 +20,7 @@ package org.opensaml.saml.ext.saml2delrestrict;
 import java.time.Instant;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -37,97 +38,97 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Delegate extends SAMLObject {
     
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Delegate";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Delegate";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20DEL_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20DEL_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "DelegateType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "DelegateType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20DEL_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20DEL_PREFIX);
     
     /** DelegationInstant attribute name. */
-    @Nonnull @NotEmpty public static final String DELEGATION_INSTANT_ATTRIB_NAME = "DelegationInstant";
+    @Nonnull @NotEmpty static final String DELEGATION_INSTANT_ATTRIB_NAME = "DelegationInstant";
 
     /** DelegationInstant attribute QName. */
-    @Nonnull public static final QName DELEGATION_INSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName DELEGATION_INSTANT_ATTRIB_QNAME =
             new QName(null, DELEGATION_INSTANT_ATTRIB_NAME, XMLConstants.DEFAULT_NS_PREFIX);
     
     /** ConfirmationMethod attribute name. */
-    @Nonnull @NotEmpty public static final String CONFIRMATION_METHOD_ATTRIB_NAME = "ConfirmationMethod";    
+    @Nonnull @NotEmpty static final String CONFIRMATION_METHOD_ATTRIB_NAME = "ConfirmationMethod";    
 
     /**
      * Gets the BaseID child element of the delegate.
      * 
      * @return the base identifier of the delegate
      */
-    public BaseID getBaseID();
+    @Nullable BaseID getBaseID();
 
     /**
      * Sets the BaseID child element of the delegate.
      * 
      * @param newBaseID the base identifier of the delegate
      */
-    public void setBaseID(@Nonnull BaseID newBaseID);
+    void setBaseID(@Nullable  final BaseID newBaseID);
 
     /**
      * Gets the NameID child element of the delegate.
      * 
      * @return the name identifier of the principal for this request
      */
-    public NameID getNameID();
+    @Nullable NameID getNameID();
 
     /**
      * Sets the NameID child element of the delegate.
      * 
      * @param newNameID the name identifier of the delegate
      */
-    public void setNameID(@Nonnull NameID newNameID);
+    void setNameID(@Nullable final NameID newNameID);
 
     /**
      * Gets the EncryptedID child element of the delegate.
      * 
      * @return the encrypted name identifier of the delegate
      */
-    public EncryptedID getEncryptedID();
+    @Nullable EncryptedID getEncryptedID();
 
     /**
      * Sets the EncryptedID child element of the delegate.
      * 
      * @param newEncryptedID the new encrypted name identifier of the delegate
      */
-    public void setEncryptedID(EncryptedID newEncryptedID);
+    void setEncryptedID(@Nullable final EncryptedID newEncryptedID);
     
     /**
      * Get the delegation instant attribute value.
      * 
      * @return the delegation instant
      */
-    public Instant getDelegationInstant();
+    @Nullable Instant getDelegationInstant();
     
     /**
      * Set the delegation instant attribute value.
      * 
      * @param newInstant the new delegation instant
      */
-    public void setDelegationInstant(Instant newInstant);
+    void setDelegationInstant(@Nullable final Instant newInstant);
     
     /**
      * Get the confirmation method attribute value.
      * 
      * @return the confirmation method
      */
-    public String getConfirmationMethod();
+    @Nullable String getConfirmationMethod();
     
     /**
      * Set the confirmation method attribute value.
      * 
      * @param newMethod the new confirmation method
      */
-    public void setConfirmationMethod(String newMethod);
+    void setConfirmationMethod(@Nullable final String newMethod);
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java
index 449b1b1fd..20d0da06b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java
@@ -25,6 +25,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Condition;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -33,10 +34,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface DelegationRestrictionType extends Condition {
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "DelegationRestrictionType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "DelegationRestrictionType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20DEL_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20DEL_PREFIX);
     
     /**
@@ -44,6 +45,6 @@ public interface DelegationRestrictionType extends Condition {
      * 
      * @return list of Delegate children
      */
-    List<Delegate> getDelegates();
+    @Nonnull @Live List<Delegate> getDelegates();
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdattr/EntityAttributes.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdattr/EntityAttributes.java
index 0707cbcf4..6c4b6411c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdattr/EntityAttributes.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdattr/EntityAttributes.java
@@ -27,33 +27,34 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Assertion;
 import org.opensaml.saml.saml2.core.Attribute;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /** SAML V2.0 Metadata Extension for Entity Attributes EntityAttributes SAML object. */
 public interface EntityAttributes extends SAMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EntityAttributes";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "EntityAttributes";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20MDATTR_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDATTR_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "EntityAttributesType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "EntityAttributesType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20MDATTR_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDATTR_PREFIX);
 
     /**
-     * Gets a fully mutable list of the child objects of this extension.
+     * Gets mutable list of the child objects of this extension.
      * 
      * @return mutable list of children
      * 
      * @since 4.0.0
      */
-    public List<SAMLObject> getEntityAttributesChildren();
+    @Nonnull @Live List<SAMLObject> getEntityAttributesChildren();
     
     /**
      * Gets the attributes about the entity.
@@ -62,7 +63,7 @@ public interface EntityAttributes extends SAMLObject {
      * 
      * @return attributes about the entity
      */
-    public List<Attribute> getAttributes();
+    @Nonnull @Live List<Attribute> getAttributes();
     
     /**
      * Gets the assertions about the entity.
@@ -71,5 +72,5 @@ public interface EntityAttributes extends SAMLObject {
      * 
      * @return assertions about the entity
      */
-    public List<Assertion> getAssertions();
+    @Nonnull @Live List<Assertion> getAssertions();
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java
index 984b24acc..1973ebf56 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java
@@ -32,9 +32,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface ActionNamespace extends XSURI, SAMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ActionNamespace";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "ActionNamespace";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDQUERY_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDQUERY_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java
index 204da605a..9293dc912 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java
@@ -25,6 +25,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AttributeConsumingService;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -33,10 +34,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AttributeQueryDescriptorType extends QueryDescriptorType {
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AttributeQueryDescriptorType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AttributeQueryDescriptorType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
 
     /**
@@ -44,5 +45,5 @@ public interface AttributeQueryDescriptorType extends QueryDescriptorType {
      * 
      * @return the list of attribute consuming service endpoints support by this role
      */
-    public List<AttributeConsumingService> getAttributeConsumingServices();
+    @Nonnull @Live List<AttributeConsumingService> getAttributeConsumingServices();
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java
index 9e938b234..eb7ac27bd 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java
@@ -30,9 +30,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AuthnQueryDescriptorType extends QueryDescriptorType {
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AuthnQueryDescriptorType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AuthnQueryDescriptorType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java
index 92a0db34f..367b1dc67 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java
@@ -24,6 +24,7 @@ import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -32,10 +33,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AuthzDecisionQueryDescriptorType extends QueryDescriptorType {
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AuthzDecisionQueryDescriptorType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AuthzDecisionQueryDescriptorType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
     
     /**
@@ -43,5 +44,5 @@ public interface AuthzDecisionQueryDescriptorType extends QueryDescriptorType {
      * 
      * @return the list of action namespaces support by this role
      */
-    public List<ActionNamespace> getActionNamespaces();
+    @Nonnull @Live List<ActionNamespace> getActionNamespaces();
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java
index 45a11be16..51e5b58d4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java
@@ -20,6 +20,7 @@ package org.opensaml.saml.ext.saml2mdquery;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBooleanValue;
@@ -27,6 +28,7 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.NameIDFormat;
 import org.opensaml.saml.saml2.metadata.RoleDescriptor;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -35,47 +37,47 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface QueryDescriptorType extends RoleDescriptor {
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "QueryDescriptorType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "QueryDescriptorType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
     
     /** "WantAssertionSigned" attribute's local name. */
-    @Nonnull @NotEmpty public static final String WANT_ASSERTIONS_SIGNED_ATTRIB_NAME = "WantAssertionsSigned";
+    @Nonnull @NotEmpty static final String WANT_ASSERTIONS_SIGNED_ATTRIB_NAME = "WantAssertionsSigned";
     
     /**
      * Gets whether assertions to this endpoint should be signed.
      * 
      * @return whether assertions to this endpoint should be signed
      */
-    public Boolean getWantAssertionsSigned();
+    @Nullable Boolean getWantAssertionsSigned();
     
     /**
      * Gets whether assertions to this endpoint should be signed.
      * 
      * @return whether assertions to this endpoint should be signed
      */
-    public XSBooleanValue getWantAssertionsSignedXSBoolean();
+    @Nullable XSBooleanValue getWantAssertionsSignedXSBoolean();
     
     /**
      * Sets whether assertions to this endpoint should be signed.
      * 
      * @param newWantAssertionsSigned whether assertions to this endpoint should be signed
      */
-    public void setWantAssertionsSigned(Boolean newWantAssertionsSigned);
+    void setWantAssertionsSigned(@Nullable final Boolean newWantAssertionsSigned);
     
     /**
      * Sets whether assertions to this endpoint should be signed.
      * 
      * @param newWantAssertionsSigned whether assertions to this endpoint should be signed
      */
-    public void setWantAssertionsSigned(XSBooleanValue newWantAssertionsSigned);
+    void setWantAssertionsSigned(@Nullable final XSBooleanValue newWantAssertionsSigned);
     
     /**
      * Gets the list of name ID formats supported by this query service.
      * 
      * @return the list of name ID formats supported by this query service
      */
-    public List<NameIDFormat> getNameIDFormat();
+    @Nonnull @Live List<NameIDFormat> getNameIDFormat();
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java
index 338d85364..966b83b7b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java
@@ -31,14 +31,14 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface RequestInitiator extends Endpoint {
     
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestInitiator";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestInitiator";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20MDRI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDRI_PREFIX);
     
     /** Per the extension specification, the value of the 'Binding' attribute MUST be set to this fixed value. */
     @Nonnull @NotEmpty
-    public static final String REQUIRED_BINDING_VALUE = "urn:oasis:names:tc:SAML:profiles:SSO:request-init";
+    static final String REQUIRED_BINDING_VALUE = "urn:oasis:names:tc:SAML:profiles:SSO:request-init";
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java
index b1164464b..e41043456 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java
@@ -39,72 +39,72 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Publication extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Publication";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Publication";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "PublicationType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "PublicationType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** publisher attribute name. */
-    @Nonnull public static String PUBLISHER_ATTRIB_NAME = "publisher";
+    @Nonnull static String PUBLISHER_ATTRIB_NAME = "publisher";
 
     /** creation attribute name. */
-    @Nonnull public static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
+    @Nonnull static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
 
     /** QName of the creation attribute. */
-    @Nonnull public static final QName CREATION_INSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName CREATION_INSTANT_ATTRIB_QNAME =
             new QName(null, CREATION_INSTANT_ATTRIB_NAME, XMLConstants.DEFAULT_NS_PREFIX);
     
     /** publication id attribute name. */
-    @Nonnull public static String PUBLICATION_ID_ATTRIB_NAME = "publicationId";
+    @Nonnull static String PUBLICATION_ID_ATTRIB_NAME = "publicationId";
 
     /**
      * Get the publisher.
      * 
      * @return the publisher
      */
-    @Nullable public String getPublisher();
+    @Nullable String getPublisher();
 
     /**
      * Set the publisher.
      * 
      * @param publisher the publisher
      */
-    public void setPublisher(@Nullable final String publisher);
+    void setPublisher(@Nullable final String publisher);
 
     /**
      * Get the creation instant.
      * 
      * @return the creation instant
      */
-    @Nullable public Instant getCreationInstant();
+    @Nullable Instant getCreationInstant();
 
     /**
      * Set the creation instant.
      * 
      * @param dateTime the instant
      */
-    public void setCreationInstant(@Nullable final Instant dateTime);
+    void setCreationInstant(@Nullable final Instant dateTime);
 
     /**
      * Get the publicationId.
      * 
      * @return the publicationId
      */
-    @Nullable public String getPublicationId();
+    @Nullable String getPublicationId();
 
     /**
      * Set the publicationId.
      * 
      * @param publicationId the publicationIdr
      */
-    public void setPublicationId(@Nullable final String publicationId);
+    void setPublicationId(@Nullable final String publicationId);
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java
index e5b5ba7b0..d601a4e3f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java
@@ -28,6 +28,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -40,79 +41,79 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface PublicationInfo extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationInfo";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationInfo";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "PublicationInfoType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "PublicationInfoType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** publisher attribute name. */
-    @Nonnull public static String PUBLISHER_ATTRIB_NAME = "publisher";
+    @Nonnull @NotEmpty  static String PUBLISHER_ATTRIB_NAME = "publisher";
 
     /** creation attribute name. */
-    @Nonnull public static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
+    @Nonnull @NotEmpty  static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
 
     /** QName of the creation attribute. */
-    @Nonnull public static final QName CREATION_INSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName CREATION_INSTANT_ATTRIB_QNAME =
             new QName(null, CREATION_INSTANT_ATTRIB_NAME, XMLConstants.DEFAULT_NS_PREFIX);
     
     /** publication id attribute name. */
-    @Nonnull public static String PUBLICATION_ID_ATTRIB_NAME = "publicationId";
+    @Nonnull @NotEmpty static String PUBLICATION_ID_ATTRIB_NAME = "publicationId";
 
     /**
      * Get the publisher.
      * 
      * @return the publisher
      */
-    @Nullable public String getPublisher();
+    @Nullable String getPublisher();
 
     /**
      * Set the publisher.
      * 
      * @param publisher the publisher
      */
-    public void setPublisher(@Nullable final String publisher);
+    void setPublisher(@Nullable final String publisher);
 
     /**
      * Get the creation instant.
      * 
      * @return the creation instant
      */
-    @Nullable public Instant getCreationInstant();
+    @Nullable Instant getCreationInstant();
 
     /**
      * Set the creation instant.
      * 
      * @param dateTime the instant
      */
-    public void setCreationInstant(@Nullable final Instant dateTime);
+    void setCreationInstant(@Nullable final Instant dateTime);
 
     /**
      * Get the publicationId.
      * 
      * @return the publicationId
      */
-    @Nullable public String getPublicationId();
+    @Nullable String getPublicationId();
 
     /**
      * Set the publicationId.
      * 
      * @param publicationId the publicationIdr
      */
-    public void setPublicationId(@Nullable final String publicationId);
+    void setPublicationId(@Nullable final String publicationId);
 
     /**
      * Get the {@link UsagePolicy}s.
      * 
      * @return the list of policies
      */
-    @Nonnull public List<UsagePolicy> getUsagePolicies();
+    @Nonnull @Live List<UsagePolicy> getUsagePolicies();
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java
index 2125c25d6..52b89bc8e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java
@@ -25,6 +25,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -37,17 +38,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface PublicationPath extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationPath";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationPath";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "PublicationPathType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "PublicationPathType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /**
@@ -55,6 +56,6 @@ public interface PublicationPath extends SAMLObject {
      * 
      * @return the list of publications
      */
-    @Nonnull public List<Publication> getPublications();
+    @Nonnull @Live List<Publication> getPublications();
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/RegistrationInfo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/RegistrationInfo.java
index 95d450df0..0d8f5abd9 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/RegistrationInfo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/RegistrationInfo.java
@@ -28,6 +28,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -40,27 +41,27 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface RegistrationInfo extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RegistrationInfo";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "RegistrationInfo";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "RegistrationInfoType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "RegistrationInfoType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** registrationAuthority attribute name. */
-    @Nonnull @NotEmpty public static String REGISTRATION_AUTHORITY_ATTRIB_NAME = "registrationAuthority";
+    @Nonnull @NotEmpty static String REGISTRATION_AUTHORITY_ATTRIB_NAME = "registrationAuthority";
 
     /** registrationInstant attribute name. */
-    @Nonnull @NotEmpty public static String REGISTRATION_INSTANT_ATTRIB_NAME = "registrationInstant";
+    @Nonnull @NotEmpty static String REGISTRATION_INSTANT_ATTRIB_NAME = "registrationInstant";
 
     /** QName of the registrationInstant attribute. */
-    @Nonnull public static final QName REGISTRATION_INSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName REGISTRATION_INSTANT_ATTRIB_QNAME =
             new QName(null, REGISTRATION_INSTANT_ATTRIB_NAME, XMLConstants.DEFAULT_NS_PREFIX);
     
     /**
@@ -68,34 +69,34 @@ public interface RegistrationInfo extends SAMLObject {
      * 
      * @return the registration authority
      */
-    @Nullable public String getRegistrationAuthority();
+    @Nullable String getRegistrationAuthority();
 
     /**
      * Set the registration authority.
      * 
      * @param authority the registration authority
      */
-    public void setRegistrationAuthority(@Nullable final String authority);
+    void setRegistrationAuthority(@Nullable final String authority);
 
     /**
      * Get the registration instant.
      * 
      * @return the registration instant
      */
-    @Nullable public Instant getRegistrationInstant();
+    @Nullable Instant getRegistrationInstant();
 
     /**
      * Set the registration instant.
      * 
      * @param dateTime the instant
      */
-    public void setRegistrationInstant(@Nullable final Instant dateTime);
+    void setRegistrationInstant(@Nullable final Instant dateTime);
 
     /**
      * Get the {@link RegistrationPolicy}s.
      * 
      * @return the list of policies
      */
-    @Nonnull public List<RegistrationPolicy> getRegistrationPolicies();
+    @Nonnull @Live List<RegistrationPolicy> getRegistrationPolicies();
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java
index 9a3467e20..54345b2ac 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java
@@ -39,10 +39,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Description extends LocalizedName, SAMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Description";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Description";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDUI_NS, 
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDUI_NS, 
             DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java
index e3517b0ea..d18aeb45d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java
@@ -26,6 +26,7 @@ import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -38,17 +39,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface DiscoHints extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoHints";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoHints";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "DiscoHintsType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "DiscoHintsType";
            
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** 
@@ -57,7 +58,7 @@ public interface DiscoHints extends SAMLObject {
      * 
      * @return hints
      */
-    public List <IPHint> getIPHints();
+    @Nonnull @Live List <IPHint> getIPHints();
     
     /**
      * The <DomainHint> element specifies a set of DNS domains associated with, 
@@ -65,7 +66,7 @@ public interface DiscoHints extends SAMLObject {
      *
      * @return hints.
      */
-    public List <DomainHint> getDomainHints();
+    @Nonnull @Live List <DomainHint> getDomainHints();
     
     /**
      * The <GeolocationHint> element specifies the geographic coordinates associated 
@@ -74,14 +75,14 @@ public interface DiscoHints extends SAMLObject {
      * 
      * @return hints
      */
-    public List <GeolocationHint> getGeolocationHints();
+    @Nonnull @Live List <GeolocationHint> getGeolocationHints();
     
     /**
      * Get the list of all children of this element.
      * 
      * @return the list of all XMLObject children
      */
-    public List <XMLObject> getXMLObjects(); 
+    @Nonnull @Live List <XMLObject> getXMLObjects(); 
     
     /**
      * Get the list of all children of this element which have the specified name or type.
@@ -90,6 +91,6 @@ public interface DiscoHints extends SAMLObject {
      * 
      * @return the list of all XMLObject children
      */
-    public List <XMLObject> getXMLObjects(QName typeOrName); 
+    @Nonnull @Live List <XMLObject> getXMLObjects(@Nonnull final QName typeOrName); 
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java
index eab99c0c8..3904e347f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java
@@ -37,10 +37,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface DisplayName extends LocalizedName {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DisplayName";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "DisplayName";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java
index 8d5698b0f..33cf9faf6 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java
@@ -38,10 +38,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface InformationURL extends LocalizedURI {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "InformationURL";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "InformationURL";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java
index cff8ca8ac..c6461c3f0 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java
@@ -20,6 +20,7 @@ package org.opensaml.saml.ext.saml2mdui;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.LangBearing;
@@ -41,17 +42,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Keywords extends SAMLObject, LangBearing  {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Keywords";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Keywords";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "KeywordsType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "KeywordsType";
            
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /**
@@ -59,13 +60,13 @@ public interface Keywords extends SAMLObject, LangBearing  {
      * 
      * @return the keywords
      */
-    public List<String> getKeywords();
+    @Nullable List<String> getKeywords();
     
     /**
      * Sets the keywords.
      * 
      * @param val The keywords
      */
-    public void setKeywords(List<String> val);
+    void setKeywords(@Nullable final List<String> val);
    
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Logo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Logo.java
index 1b4d46923..ce8046e38 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Logo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Logo.java
@@ -62,23 +62,23 @@ public interface Logo extends LocalizedURI, SAMLObject {
      * Get the height of the logo.
      * @return the height of the logo
      */
-    @Nullable public Integer getHeight();
+    @Nullable Integer getHeight();
     
     /**
      * Sets the height of the logo.
      * @param newHeight the height of the logo
      */
-    public void setHeight(@Nullable final Integer newHeight);
+    void setHeight(@Nullable final Integer newHeight);
 
     /**
      * Get the width of the logo.
      * @return the width of the logo
      */
-    @Nullable public Integer getWidth();
+    @Nullable Integer getWidth();
     
     /**
      * Sets the width of the logo.
      * @param newWidth the height of the logo
      */
-    public void setWidth(@Nullable final Integer newWidth);
+    void setWidth(@Nullable final Integer newWidth);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java
index c374771fe..611963753 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java
@@ -38,10 +38,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface PrivacyStatementURL extends LocalizedURI {
     
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PrivacyStatementURL";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "PrivacyStatementURL";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java
index c92b2afb1..bc0d7e5df 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java
@@ -26,6 +26,7 @@ import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -39,17 +40,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface UIInfo extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "UIInfo";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "UIInfo";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "UIInfoType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "UIInfoType";
     
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** 
@@ -63,7 +64,7 @@ public interface UIInfo extends SAMLObject {
      *
      * @return the names
      */
-    public List <DisplayName> getDisplayNames();
+    @Nonnull @Live List <DisplayName> getDisplayNames();
     
     /** 
      * Get the keywords.
@@ -74,7 +75,7 @@ public interface UIInfo extends SAMLObject {
      *  
      * @return a list of keywords
      */
-    public List <Keywords> getKeywords();
+    @Nonnull @Live List <Keywords> getKeywords();
     
     /**
      * Return the descriptions.
@@ -90,7 +91,7 @@ public interface UIInfo extends SAMLObject {
      *
      * @return descriptions
      */
-    public List <Description> getDescriptions();
+    @Nonnull @Live List <Description> getDescriptions();
     
     /** 
      * Get the logos.
@@ -99,7 +100,7 @@ public interface UIInfo extends SAMLObject {
      *  
      * @return a list of logos
      */
-    public List <Logo> getLogos();
+    @Nonnull @Live List <Logo> getLogos();
     
     /** 
      * Get the URLs.
@@ -113,7 +114,7 @@ public interface UIInfo extends SAMLObject {
      *
      * @return the URLs
      */
-    public List <InformationURL> getInformationURLs();
+    @Nonnull @Live List <InformationURL> getInformationURLs();
     
     /**
      * Get the Privacy Statement URLs.
@@ -126,14 +127,14 @@ public interface UIInfo extends SAMLObject {
      *
      * @return the URLs
      */
-    public List <PrivacyStatementURL> getPrivacyStatementURLs(); 
+    @Nonnull @Live List <PrivacyStatementURL> getPrivacyStatementURLs(); 
     
     /**
      * Get the list of all children of this element.
      * 
      * @return the list of all XMLObject children
      */
-    public List <XMLObject> getXMLObjects(); 
+    @Nonnull @Live List <XMLObject> getXMLObjects(); 
     
     /**
      * Get the list of all children of this element which have the specified name or type.
@@ -142,6 +143,6 @@ public interface UIInfo extends SAMLObject {
      * 
      * @return the list of all XMLObject children
      */
-    public List <XMLObject> getXMLObjects(QName typeOrName); 
+    @Nonnull @Live List <XMLObject> getXMLObjects(@Nonnull final QName typeOrName); 
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java
index 11e0d35e1..895571c3b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java
@@ -37,10 +37,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface EncType extends XSString, SAMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncType";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncType";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAMLEC_GSS_PREFIX);
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java
index 17ef2b3e9..72125caec 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java
@@ -39,16 +39,16 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface GeneratedKey extends XSBase64Binary, SAMLObject, MustUnderstandBearing, ActorBearing {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "GeneratedKey";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "GeneratedKey";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAMLEC_GSS_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "GeneratedKeyType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "GeneratedKeyType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAMLEC_GSS_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java
index 43b55e1d7..e7419b05e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java
@@ -38,54 +38,54 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface SessionKey extends SAMLObject, MustUnderstandBearing, ActorBearing {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SessionKey";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "SessionKey";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAMLEC_GSS_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "SessionKeyType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "SessionKeyType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAMLEC_GSS_PREFIX);
 
     /** Algorithm attribute name. */
-    @Nonnull @NotEmpty public static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
+    @Nonnull @NotEmpty static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
     
     /**
      * Get the session key derivation algorithm.
      * 
      * @return the algorithm used to derive the session key
      */
-    @Nullable public String getAlgorithm();
+    @Nullable String getAlgorithm();
 
     /**
      * Set the session key derivation algorithm.
      * 
      * @param newAlgorithm the algorithm used to derive the session key
      */
-    public void setAlgorithm(@Nullable final String newAlgorithm);
+    void setAlgorithm(@Nullable final String newAlgorithm);
     
     /**
      * Get the session key encryption typed.
      * 
      * @return the encryption types of the session key
      */
-    @Nonnull public List<EncType> getEncTypes();
+    @Nonnull List<EncType> getEncTypes();
 
     /**
      * Get the KeyInfo object that describes the session key.
      * 
      * @return the KeyInfo object that describes the session key
      */
-    @Nullable public KeyInfo getKeyInfo();
+    @Nullable KeyInfo getKeyInfo();
 
     /**
      * Set the KeyInfo object that describes the session key.
      * 
      * @param newKeyInfo the KeyInfo object that describes the session key
      */
-    public void setKeyInfo(@Nullable final KeyInfo newKeyInfo);
+    void setKeyInfo(@Nullable final KeyInfo newKeyInfo);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java
index 2029919de..2f5eb836b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java
@@ -32,9 +32,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface RespondTo extends NameIDType, SAMLObject {
 
     /** Element local name. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondTo";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondTo";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20PTHRPTY_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20PTHRPTY_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Advice.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Advice.java
index a00465996..1f6c7dbc7 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Advice.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Advice.java
@@ -26,7 +26,7 @@ import org.opensaml.core.xml.ElementExtensibleXMLObject;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -53,13 +53,13 @@ public interface Advice extends SAMLObject, ElementExtensibleXMLObject {
      * 
      * @return the AssertionIdReferences in order
      */
-    @Nonnull @NonnullElements List<AssertionIDReference> getAssertionIDReferences();
+    @Nonnull @Live List<AssertionIDReference> getAssertionIDReferences();
 
     /**
      * Get the Assertions.
      * 
      * @return the assertions (in order)
      */
-    @Nonnull @NonnullElements List<Assertion> getAssertions();
+    @Nonnull @Live List<Assertion> getAssertions();
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Assertion.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Assertion.java
index 4105a9f66..75b2a8d53 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Assertion.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Assertion.java
@@ -29,7 +29,7 @@ import org.opensaml.saml.common.SAMLVersion;
 import org.opensaml.saml.common.SignableSAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -169,7 +169,7 @@ public interface Assertion extends SignableSAMLObject, Evidentiary {
      * 
      * @return the List representing all the statements
      */
-    @Nonnull @NonnullElements List<Statement> getStatements();
+    @Nonnull @Live List<Statement> getStatements();
 
     /**
      * Return the List representing all the <code> Statement </code> sub elements with a given schema type or element
@@ -179,34 +179,34 @@ public interface Assertion extends SignableSAMLObject, Evidentiary {
      * 
      * @return the List representing all the statements
      */
-    @Nonnull @NonnullElements List<Statement> getStatements(@Nonnull final QName typeOrName);
+    @Nonnull @Live List<Statement> getStatements(@Nonnull final QName typeOrName);
 
     /**
      * Return the List representing all the <code> SubjectStatement </code> sub elements.
      * 
      * @return all the SubjectStatements
      */
-    @Nonnull @NonnullElements List<SubjectStatement> getSubjectStatements();
+    @Nonnull @Live List<SubjectStatement> getSubjectStatements();
 
     /**
      * Return the List representing all the <code> AuthenticationStatement </code> sub elements.
      * 
      * @return all the AuthenticationStatements
      */
-    @Nonnull @NonnullElements List<AuthenticationStatement> getAuthenticationStatements();
+    @Nonnull @Live List<AuthenticationStatement> getAuthenticationStatements();
 
     /**
      * Return the List representing all the <code> AuthorizationStatement </code> sub elements.
      * 
      * @return all the authorizationDecisionStatements.
      */
-    @Nonnull @NonnullElements List<AuthorizationDecisionStatement> getAuthorizationDecisionStatements();
+    @Nonnull @Live List<AuthorizationDecisionStatement> getAuthorizationDecisionStatements();
 
     /**
      * Return all the <code> AttributeStatement </code> elements.
      * 
      * @return all the attributeStatements
      */
-    @Nonnull @NonnullElements List<AttributeStatement> getAttributeStatements();
+    @Nonnull @Live List<AttributeStatement> getAttributeStatements();
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Attribute.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Attribute.java
index 7ecef1f72..eb65c274d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Attribute.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Attribute.java
@@ -25,7 +25,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -52,6 +52,6 @@ public interface Attribute extends AttributeDesignator {
      * 
      * @return the subsiduary attribute values
      */
-    @Nonnull @NonnullElements public List<XMLObject> getAttributeValues();
+    @Nonnull @Live public List<XMLObject> getAttributeValues();
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java
index 53f24b08e..00c77212d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java
@@ -25,6 +25,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -33,17 +34,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AttributeStatement extends SAMLObject, SubjectStatement {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeStatement";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeStatement";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AttributeStatementType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AttributeStatementType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /**
@@ -51,6 +52,6 @@ public interface AttributeStatement extends SAMLObject, SubjectStatement {
      *
      *  @return the child Attributes
      */
-    public List <Attribute> getAttributes();
+    @Nonnull @Live List <Attribute> getAttributes();
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java
index e822d6274..2eff476a9 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java
@@ -24,6 +24,7 @@ import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -33,17 +34,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AudienceRestrictionCondition extends Condition {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AudienceRestrictionCondition";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "AudienceRestrictionCondition";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AudienceRestrictionConditionType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AudienceRestrictionConditionType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /**
@@ -51,5 +52,5 @@ public interface AudienceRestrictionCondition extends Condition {
      * 
      * @return the child Audience elements
      */
-    public List<Audience> getAudiences();
+    @Nonnull @Live List<Audience> getAudiences();
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java
index 09d26d990..e169fbd6b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java
@@ -21,6 +21,7 @@
 package org.opensaml.saml.saml1.core;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -33,34 +34,34 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AuthenticationQuery extends SubjectQuery {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationQuery";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationQuery";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AuthenticationQueryType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AuthenticationQueryType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** AuthenticationMethod attribute name. */
-    @Nonnull @NotEmpty public static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod"; 
+    @Nonnull @NotEmpty static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod"; 
 
     /**
      * Get AuthenticationMethod attribute.
      * 
      * @return the authentication method
      */
-    public String getAuthenticationMethod();
+    @Nullable String getAuthenticationMethod();
     
     /**
      * Set AuthenticationMethod attribute.
      * 
      * @param authenticationMethod the authentication method
      */
-    public void setAuthenticationMethod(String authenticationMethod);
+    void setAuthenticationMethod(@Nullable final String authenticationMethod);
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java
index 3b4895ee1..90e7b3b75 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java
@@ -21,121 +21,125 @@ import java.time.Instant;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+
 /**
  * This interface defines how the object representing a SAML1 <code> AuthenticationStatment </code> element behaves.
  */
 public interface AuthenticationStatement extends SAMLObject, SubjectStatement {
 
     /** Element name, no namespace. */
-    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationStatement";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationStatement";
     
     /** Default element name. */
     @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull static final String TYPE_LOCAL_NAME = "AuthenticationStatementType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AuthenticationStatementType"; 
         
     /** QName of the XSI type. */
     @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name of the AuthenticationMethod attribute. */
-    @Nonnull static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod";
+    @Nonnull @NotEmpty static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod";
 
     /** Name of the AuthenticationInstant attribute. */
-    @Nonnull static final String AUTHENTICATIONINSTANT_ATTRIB_NAME = "AuthenticationInstant";
+    @Nonnull @NotEmpty static final String AUTHENTICATIONINSTANT_ATTRIB_NAME = "AuthenticationInstant";
 
     /** QName of the AuthenticationInstant attribute. */
     @Nonnull static final QName AUTHENTICATIONINSTANT_ATTRIB_QNAME =
             new QName(null, "AuthenticationInstant", XMLConstants.DEFAULT_NS_PREFIX);
 
     /** URI for Kerberos authentication method. */
-    @Nonnull static final String KERBEROS_AUTHN_METHOD = "urn:ietf:rfc:1510";
+    @Nonnull @NotEmpty static final String KERBEROS_AUTHN_METHOD = "urn:ietf:rfc:1510";
     
     /** URI for Hardware Token authentication method. */
-    @Nonnull static final String HARDWARE_TOKEN_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:HardwareToken";
+    @Nonnull @NotEmpty static final String HARDWARE_TOKEN_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:HardwareToken";
 
     /** URI for Password authentication method. */
-    @Nonnull static final String PASSWORD_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:password";
+    @Nonnull @NotEmpty static final String PASSWORD_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:password";
 
     /** URI for X509 Public Key authentication method. */
-    @Nonnull static final String X509_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:X509-PKI";
+    @Nonnull @NotEmpty static final String X509_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:X509-PKI";
 
     /** URI for PGP authentication method. */
-    @Nonnull static final String PGP_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:PGP";
+    @Nonnull @NotEmpty static final String PGP_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:PGP";
 
     /** URI for SPKI authentication method. */
-    @Nonnull static final String SPKI_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:SPKI";
+    @Nonnull @NotEmpty static final String SPKI_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:SPKI";
 
     /** URI for XKMS authentication method. */
-    @Nonnull static final String XKMS_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:XKMS";
+    @Nonnull @NotEmpty static final String XKMS_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:XKMS";
     
     /** URI for XML Digital Signature authentication method. */
-    @Nonnull static final String XML_DSIG_AUTHN_METHOD = "urn:ietf:rfc:3075";
+    @Nonnull @NotEmpty static final String XML_DSIG_AUTHN_METHOD = "urn:ietf:rfc:3075";
 
     /** URI for Secure Remote Password authentication method. */
-    @Nonnull static final String SRP_AUTHN_METHOD = "urn:ietf:rfc:2945";
+    @Nonnull @NotEmpty static final String SRP_AUTHN_METHOD = "urn:ietf:rfc:2945";
 
     /** URI for SSL/TLS Client authentication method. */
-    @Nonnull static final String TLS_CLIENT_AUTHN_METHOD = "urn:ietf:rfc:2246";
+    @Nonnull @NotEmpty static final String TLS_CLIENT_AUTHN_METHOD = "urn:ietf:rfc:2246";
 
     /** URI for unspecified authentication method. */
-    @Nonnull static final String UNSPECIFIED_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:unspecified";    
+    @Nonnull @NotEmpty static final String UNSPECIFIED_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:unspecified";    
     
     /**
      * Return the contents of the AuthenticationMethod attribute.
      *
      * @return the authentication method
      */
-    String getAuthenticationMethod();
+    @Nullable String getAuthenticationMethod();
 
     /**
      * Set the contents of the AuthenticationMethod attribute.
      * 
      * @param authenticationMethod the authentication method
      */
-    void setAuthenticationMethod(String authenticationMethod);
+    void setAuthenticationMethod(@Nullable final String authenticationMethod);
 
     /**
      * Return the contents of the AuthenticationInstant attribute.
      * 
      * @return the authentication instant
      */
-    Instant getAuthenticationInstant();
+    @Nullable Instant getAuthenticationInstant();
 
     /**
      * Set the contents of the AuthenticationInstant attribute.
      *
      *  @param authenticationInstant the authentication instant
      */
-    void setAuthenticationInstant(Instant authenticationInstant);
+    void setAuthenticationInstant(@Nullable final Instant authenticationInstant);
 
     /**
      * Get the {@link SubjectLocality}.
      * 
      * @return the {@link SubjectLocality} 
      */
-    SubjectLocality getSubjectLocality();
+    @Nullable SubjectLocality getSubjectLocality();
 
     /**
      * Set the {@link SubjectLocality}.
      * 
      * @param subjectLocality the {@link SubjectLocality} 
      */
-    void setSubjectLocality(SubjectLocality subjectLocality);
+    void setSubjectLocality(@Nullable final SubjectLocality subjectLocality);
 
     /**
      * Get the list of {@link AuthorityBinding}s.
      * 
      * @return the list of {@link AuthorityBinding}s
      */
-    List<AuthorityBinding> getAuthorityBindings();
+    @Nonnull @Live List<AuthorityBinding> getAuthorityBindings();
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java
index d4bc17f18..8ace28306 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java
@@ -22,6 +22,7 @@
 package org.opensaml.saml.saml1.core;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -35,68 +36,68 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AuthorityBinding extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorityBinding";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorityBinding";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AuthorityBindingType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AuthorityBindingType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Name for the AuthorityKind attribute.  */
-    @Nonnull @NotEmpty public static final String AUTHORITYKIND_ATTRIB_NAME = "AuthorityKind";
+    @Nonnull @NotEmpty static final String AUTHORITYKIND_ATTRIB_NAME = "AuthorityKind";
     
     /** Name for the Location attribute.  */
-    @Nonnull @NotEmpty public static final String LOCATION_ATTRIB_NAME = "Location";
+    @Nonnull @NotEmpty static final String LOCATION_ATTRIB_NAME = "Location";
 
     /** Name for the Binding attribute.  */
-    @Nonnull @NotEmpty public static final String BINDING_ATTRIB_NAME = "Binding";
+    @Nonnull @NotEmpty static final String BINDING_ATTRIB_NAME = "Binding";
 
     /**
      * Get the type of authority described.
      * 
      * @return the type of authority
      */
-    public QName getAuthorityKind();
+    @Nullable QName getAuthorityKind();
 
     /**
      * Set the type of authority described.
      * 
      * @param authorityKind the type of authority
      */
-    public void setAuthorityKind(QName authorityKind);
+    void setAuthorityKind(@Nullable final QName authorityKind);
     
     /**
      * Get the authority location.
      * 
      * @return the location
      */
-    public String getLocation();
+    @Nullable String getLocation();
 
     /**
      * Set the authority location.
      * 
      * @param location the location
      */
-    public void setLocation(String location);
+    void setLocation(@Nullable final String location);
     
     /**
      * Get the authority binding.
      * 
      * @return the binding
      */
-    public String getBinding();
+    @Nullable String getBinding();
 
     /**
      * Set the authority binding.
      * 
      * @param binding the binding
      */
-    public void setBinding(String binding);
+    void setBinding(@Nullable final String binding);
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java
index 6e0c1b911..5f7a32d3c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java
@@ -23,10 +23,12 @@ package org.opensaml.saml.saml1.core;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -35,54 +37,54 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AuthorizationDecisionQuery extends SubjectQuery {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionQuery";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionQuery";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AuthorizationDecisionQueryType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AuthorizationDecisionQueryType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** AuthenticationMethod attribute name. */
-    @Nonnull @NotEmpty public static final String RESOURCE_ATTRIB_NAME = "Resource"; 
+    @Nonnull @NotEmpty static final String RESOURCE_ATTRIB_NAME = "Resource"; 
 
     /** 
      * Get Resource attribute.
      * 
      * @return Resource attribute
      */
-    public String getResource();
+    @Nullable String getResource();
     
     /**
      * Set Resource attribute.
      * 
      * @param resource Resource attribute to set
      */
-    public void setResource(String resource);
+    void setResource(@Nullable final String resource);
 
     /**
      * Get list of Action child elements.
      * 
      * @return Action list
      */
-    public List<Action> getActions();
+    @Nonnull @Live List<Action> getActions();
     
     /**
      * Get the Evidence child element.
      * 
      * @return Evidence child element
      */
-    public Evidence getEvidence();
+    @Nullable Evidence getEvidence();
 
     /**
      * Set the Evidence child element.
      * 
      * @param evidence child element to set
      */
-    public void setEvidence(Evidence evidence);
+    void setEvidence(@Nullable final Evidence evidence);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java
index 707024d47..40c6681cb 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java
@@ -20,11 +20,13 @@ package org.opensaml.saml.saml1.core;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -34,66 +36,66 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface AuthorizationDecisionStatement extends SAMLObject, SubjectStatement {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionStatement";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionStatement";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "AuthorizationDecisionStatementType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "AuthorizationDecisionStatementType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name for Resource attribute. */
-    @Nonnull @NotEmpty public static final String RESOURCE_ATTRIB_NAME = "Resource";
+    @Nonnull @NotEmpty static final String RESOURCE_ATTRIB_NAME = "Resource";
     
     /** Name for Decision attribute. */
-    @Nonnull @NotEmpty public static final String DECISION_ATTRIB_NAME = "Decision";
+    @Nonnull @NotEmpty static final String DECISION_ATTRIB_NAME = "Decision";
     
     /**
      * Get the resource.
      * 
      * @return the resource
      */
-    public String getResource();
+    @Nullable String getResource();
     
     /**
      * Set the resource.
      * 
      * @param resource the resource
      */
-    public void setResource(String resource);
+    void setResource(@Nullable final String resource);
 
     /**
      * Get the decision.
      * 
      * @return the decision.
      */
-    public DecisionTypeEnumeration getDecision();
+    @Nullable DecisionTypeEnumeration getDecision();
 
     /**
      * Set the decision.
      * 
      * @param decision the decision.
      */
-    public void setDecision(DecisionTypeEnumeration decision);
+    void setDecision(@Nullable final DecisionTypeEnumeration decision);
 
     /**
      * Get the actions.
      * 
      * @return the actions.
      */
-    public List<Action> getActions();
+    @Nonnull @Live List<Action> getActions();
 
     /**
      * Get the evidence.
      * 
      * @return the evidence
      */
-    public Evidence getEvidence();
+    @Nullable Evidence getEvidence();
 
     /**
      * Set the evidence.
@@ -102,6 +104,6 @@ public interface AuthorizationDecisionStatement extends SAMLObject, SubjectState
      * 
      * @throws IllegalArgumentException if an error occurs
      */
-    public void setEvidence(Evidence evidence) throws IllegalArgumentException;
+    void setEvidence(@Nullable final Evidence evidence) throws IllegalArgumentException;
    
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java
index befe41547..47a07a790 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java
@@ -35,16 +35,16 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Condition extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Condition";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Condition";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "ConditionAbstractType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "ConditionAbstractType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java
index a2691179f..ee233c019 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java
@@ -21,12 +21,15 @@ import java.time.Instant;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
+
 /**
  * This interface defines how the object representing a SAML1 <code> Conditions</code> element behaves.
  */
@@ -64,35 +67,35 @@ public interface Conditions extends SAMLObject {
      * 
      * @return the "not before" condition 
      */
-    Instant getNotBefore();
+    @Nullable Instant getNotBefore();
 
     /**
      * Set the "not before" condition.
      * 
      * @param notBefore the "not before" condition 
      */
-    void setNotBefore(Instant notBefore);
+    void setNotBefore(@Nullable final Instant notBefore);
 
     /**
      * Get the "not on or after" condition.
      * 
      * @return the "not on or after" condition 
      */
-    Instant getNotOnOrAfter();
+    @Nullable Instant getNotOnOrAfter();
 
     /**
      * Set the "not on or after" condition.
      * 
      * @param notOnOrAfter the "not on or after" condition 
      */
-    void setNotOnOrAfter(Instant notOnOrAfter);
+    void setNotOnOrAfter(@Nullable final Instant notOnOrAfter);
     
     /**
      * Get the conditions.
      * 
      * @return the conditions
      */
-    List<Condition> getConditions();
+    @Nonnull @Live List<Condition> getConditions();
     
     /**
      * Get the conditions with the given schema type or element name.
@@ -101,19 +104,19 @@ public interface Conditions extends SAMLObject {
      * 
      * @return the matching conditions
      */
-    List<Condition> getConditions(QName typeOrName);
+    @Nonnull @Live List<Condition> getConditions(@Nonnull final QName typeOrName);
 
     /**
      * Get the audience restriction conditions.
      * 
      * @return the audience restriction conditions
      */
-    List<AudienceRestrictionCondition> getAudienceRestrictionConditions();
+    @Nonnull @Live List<AudienceRestrictionCondition> getAudienceRestrictionConditions();
 
     /**
      * Get the "do not cache" conditions.
      * 
      * @return the "do not cache" conditions
      */
-    List<DoNotCacheCondition> getDoNotCacheConditions();
+    @Nonnull @Live List<DoNotCacheCondition> getDoNotCacheConditions();
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java
index 29884498a..5efe93f49 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java
@@ -31,16 +31,16 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface DoNotCacheCondition extends Condition {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DoNotCacheCondition";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "DoNotCacheCondition";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "DoNotCacheConditionType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "DoNotCacheConditionType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java
index c49eb3700..a172e07f8 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java
@@ -25,6 +25,7 @@ import javax.xml.namespace.QName;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -33,17 +34,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Evidence extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Evidence";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Evidence";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "EvidenceType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "EvidenceType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /**
@@ -51,20 +52,20 @@ public interface Evidence extends SAMLObject {
      * 
      * @return list of all {@link Evidentiary} elements
      */
-    @Nonnull public List<Evidentiary> getEvidence();
+    @Nonnull @Live List<Evidentiary> getEvidence();
 
     /**
      * Get the list of assertion ID references.
      * 
      * @return list of assertion ID references
      */
-    @Nonnull public List<AssertionIDReference> getAssertionIDReferences();
+    @Nonnull @Live List<AssertionIDReference> getAssertionIDReferences();
     
     /**
      * Get the list of Assertions.
      * 
      * @return list of assertions
      */
-    @Nonnull public List<Assertion> getAssertions();
+    @Nonnull @Live List<Assertion> getAssertions();
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java
index 7f74683bd..ee9fbc7f3 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java
@@ -31,37 +31,37 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface NameIdentifier extends SAMLObject, XSString {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIdentifier";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIdentifier";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "NameIdentifierType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "NameIdentifierType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name for the attribute which defines Name Qualifier. */
-    @Nonnull @NotEmpty public static final String NAMEQUALIFIER_ATTRIB_NAME = "NameQualifier";
+    @Nonnull @NotEmpty static final String NAMEQUALIFIER_ATTRIB_NAME = "NameQualifier";
 
     /** Name for the attribute which defines Name Qualifier. */
-    @Nonnull @NotEmpty public static final String FORMAT_ATTRIB_NAME = "Format";
+    @Nonnull @NotEmpty static final String FORMAT_ATTRIB_NAME = "Format";
 
     /** URI for unspecified name format. */
-    @Nonnull @NotEmpty public static final String UNSPECIFIED = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
+    @Nonnull @NotEmpty static final String UNSPECIFIED = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
 
     /** URI for email name format. */
-    @Nonnull @NotEmpty public static final String EMAIL = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
+    @Nonnull @NotEmpty static final String EMAIL = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
 
     /** URI for X509 subject name format. */
     @Nonnull @NotEmpty
-    public static final String X509_SUBJECT = "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName";
+    static final String X509_SUBJECT = "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName";
 
     /** URI for windows domain qualified name name format. */
-    @Nonnull @NotEmpty public static final String WIN_DOMAIN_QUALIFIED =
+    @Nonnull @NotEmpty static final String WIN_DOMAIN_QUALIFIED =
             "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName";
     
     /**
@@ -69,27 +69,27 @@ public interface NameIdentifier extends SAMLObject, XSString {
      * 
      * @return name qualifier for this identifier
      */
-    @Nullable public String getNameQualifier();
+    @Nullable String getNameQualifier();
 
     /**
      * Sets the name qualifier for this identifier.
      * 
      * @param nameQualifier name qualifier for this identifier
      */
-    public void setNameQualifier(@Nullable final String nameQualifier);
+    void setNameQualifier(@Nullable final String nameQualifier);
 
     /**
      * Gets the format of this identifier.
      * 
      * @return format of this identifier
      */
-    @Nullable public String getFormat();
+    @Nullable String getFormat();
 
     /**
      * Sets the format of this identifier.
      * 
      * @param format format of this identifier
      */
-    public void setFormat(@Nullable final String format);
+    void setFormat(@Nullable final String format);
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java
index 57784ffdd..97ca10f23 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java
@@ -31,16 +31,16 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Query extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Query";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Query";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "QueryAbstractType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "QueryAbstractType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java
index 82dab38ae..9796e00d6 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java
@@ -25,7 +25,7 @@ import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
 
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -34,17 +34,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Request extends RequestAbstractType {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Request";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Request";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "RequestType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "RequestType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /* 
@@ -56,54 +56,54 @@ public interface Request extends RequestAbstractType {
      * 
      * @return request Query, SubjectQuery, AuthenticationQuery, AttributeQuery, or AuthorizationDecisionQuery
      */
-    @Nullable public Query getQuery();
+    @Nullable Query getQuery();
     
     /**
      * Get the request SubjectQuery, AuthenticationQuery, AttributeQuery, or AuthorizationDecisionQuery.
      *
      * @return request SubjectQuery, AuthenticationQuery, AttributeQuery, or AuthorizationDecisionQuery
      */
-    @Nullable public SubjectQuery getSubjectQuery();
+    @Nullable SubjectQuery getSubjectQuery();
     
     /**
      * Get the request AuthenticationQuery.
      * 
      * @return request AuthenticationQuery
      */ 
-    @Nullable public AuthenticationQuery getAuthenticationQuery();
+    @Nullable AuthenticationQuery getAuthenticationQuery();
     
     /**
      * Get the request AttributeQuery.
      * 
      * @return request AttributeQuery
      */
-    @Nullable public AttributeQuery getAttributeQuery();
+    @Nullable AttributeQuery getAttributeQuery();
     
     /**
      * Get the request AuthorizationDecisionQuery.
      * 
      * @return request AuthorizationDecisionQuery
      */ 
-    @Nullable public AuthorizationDecisionQuery getAuthorizationDecisionQuery();
+    @Nullable AuthorizationDecisionQuery getAuthorizationDecisionQuery();
     
     /**
      * Set the request query (Query, SubjectQuery, AuthenticationQuery, AttributeQuery, AuthorizationDecisioonQuery).
      * 
      * @param query Query, SubjectQuery, AuthenticationQuery, AttributeQuery, AuthorizationDecisioonQuery
      */ 
-    public void setQuery(@Nullable Query query);
+    void setQuery(@Nullable Query query);
     
     /**
      * Get the list of AssertionIDReferences.
      * 
      * @return list of AssertionIDReferences
      */
-    @Nonnull @NonnullElements public List <AssertionIDReference> getAssertionIDReferences();
+    @Nonnull @Live List <AssertionIDReference> getAssertionIDReferences();
     
     /**
      * Get the list of artifacts.
      * 
      * @return list of artifacts
      */
-    @Nonnull @NonnullElements public List <AssertionArtifact> getAssertionArtifacts();
+    @Nonnull @Live List <AssertionArtifact> getAssertionArtifacts();
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java
index e49a9f483..f97edb174 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java
@@ -25,79 +25,83 @@ import java.time.Instant;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLVersion;
 import org.opensaml.saml.common.SignableSAMLObject;
 
+import net.shibboleth.shared.annotation.constraint.Live;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+
 /**
  * This interface describes the base class for types derived from <code> RequestAbstractType </code>.
  */
 public interface RequestAbstractType extends SignableSAMLObject {
 
     /** Name for the attribute which defines the MajorVersion (which must be "1". */
-    @Nonnull static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
+    @Nonnull @NotEmpty static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
 
     /** Name for the attribute which defines the MinorVersion. */
-    @Nonnull static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
+    @Nonnull @NotEmpty static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
 
     /** Name for the attribute which defines the IssueInstant. */
-    @Nonnull static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
+    @Nonnull @NotEmpty static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
     
     /** QName for the attribute which defines the IssueInstant. */
     @Nonnull static final QName ISSUEINSTANT_ATTRIB_QNAME =
             new QName(null, "IssueInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** Name for the attribute which defines the Issue Instant. */
-    @Nonnull static final String ID_ATTRIB_NAME = "RequestID";
+    @Nonnull @NotEmpty static final String ID_ATTRIB_NAME = "RequestID";
 
     /**
      * Gets the SAML version of this message.
      * 
      * @return the SAML version of this message
      */
-    SAMLVersion getVersion();
+    @Nullable SAMLVersion getVersion();
 
     /**
      * Sets the SAML version of this message.
      * 
      * @param version SAML version of this message
      */
-    void setVersion(SAMLVersion version);
+    void setVersion(@Nullable final SAMLVersion version);
 
     /**
      * Get the issue instant.
      * 
      * @return the issue instant
      */
-    Instant getIssueInstant();
+    @Nullable Instant getIssueInstant();
 
     /**
      * Set the issue instant.
      * 
      * @param date what to set
      */
-    void setIssueInstant(Instant date);
+    void setIssueInstant(@Nullable final Instant date);
 
     /**
      * Get the ID.
      * 
      * @return the ID
      */
-    String getID();
+    @Nullable String getID();
 
     /**
      * Set the ID.
      * 
      * @param id what to set
      */
-    void setID(String id);
+    void setID(@Nullable final String id);
 
     /**
      * Return the list of RespondWith elements.
      * 
      * @return the list of RespondWith elements
      */
-    List<RespondWith> getRespondWiths();
+    @Nonnull @Live List<RespondWith> getRespondWiths();
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java
index 0ff470192..ae69f7f89 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java
@@ -36,9 +36,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface RespondWith extends SAMLObject, XSQName {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondWith";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondWith";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java
index 709aee1ee..2f8ae2c9f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java
@@ -20,10 +20,12 @@ package org.opensaml.saml.saml1.core;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -32,17 +34,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Response extends ResponseAbstractType {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "ResponseAbstractType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "ResponseAbstractType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML1P_PREFIX);
 
     /**
@@ -50,20 +52,20 @@ public interface Response extends ResponseAbstractType {
      * 
      * @return the Status
      */
-    Status getStatus();
+    @Nullable Status getStatus();
 
     /**
      * Set the object representing the <code> Status </code> (element).
      * 
      * @param status what to set
      */
-    void setStatus(Status status);
+    void setStatus(@Nullable final Status status);
 
     /**
      * Return the objects representing the <code>Assertion</code> (element).
      * 
      * @return the Assertion objects
      */
-    public List<Assertion> getAssertions();
+    @Nonnull @Live List<Assertion> getAssertions();
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java
index 736412b5c..d2e23ad02 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java
@@ -20,102 +20,105 @@ package org.opensaml.saml.saml1.core;
 import java.time.Instant;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLVersion;
 import org.opensaml.saml.common.SignableSAMLObject;
 
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+
 /**
  * This interface defines the base class for type derived from the SAML1 <code> ResponseAbstractType </code> .
  */
 public interface ResponseAbstractType extends SignableSAMLObject {
 
     /** Name for the attribute which defines InResponseTo. */
-    @Nonnull static final String INRESPONSETO_ATTRIB_NAME = "InResponseTo";
+    @Nonnull @NotEmpty static final String INRESPONSETO_ATTRIB_NAME = "InResponseTo";
 
     /** Name for the attribute which defines the MajorVersion (which must be "1". */
-    @Nonnull static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
+    @Nonnull @NotEmpty static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
 
     /** Name for the attribute which defines the MinorVersion. */
-    @Nonnull static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
+    @Nonnull @NotEmpty static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
 
     /** Name for the attribute which defines the IssueInstant. */
-    @Nonnull static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
+    @Nonnull @NotEmpty static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
 
     /** QName for the attribute which defines the IssueInstant. */
     @Nonnull static final QName ISSUEINSTANT_ATTRIB_QNAME =
             new QName(null, "IssueInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** Name for the attribute which defines the Recipient. */
-    @Nonnull static final String RECIPIENT_ATTRIB_NAME = "Recipient";
+    @Nonnull @NotEmpty static final String RECIPIENT_ATTRIB_NAME = "Recipient";
 
     /** Name for the attribute which defines the ResponseID. */
-    @Nonnull static final String ID_ATTRIB_NAME = "ResponseID";
+    @Nonnull @NotEmpty static final String ID_ATTRIB_NAME = "ResponseID";
 
     /**
      * Return the InResponseTo (attribute).
      * 
      * @return the InResponseTo (attribute).
      */
-    String getInResponseTo();
+    @Nullable String getInResponseTo();
 
     /**
      * Set the InResponseTo (attribute).
      * 
      * @param who what to set
      */
-    void setInResponseTo(String who);
+    void setInResponseTo(@Nullable final String who);
 
     /**
      * Get the ID.
      * 
      * @return the ID
      */
-    String getID();
+    @Nullable String getID();
 
     /**
      * Set the ID.
      * 
      * @param id what to set
      */
-    void setID(String id);
+    void setID(@Nullable final String id);
 
     /**
      * Sets the SAML version for this message.
      * 
      * @return SAML version for this message
      */
-    SAMLVersion getVersion();
+    @Nullable SAMLVersion getVersion();
 
     /**
      * Sets the SAML version for this message.
      * 
      * @param version the SAML version for this message
      */
-    void setVersion(SAMLVersion version);
+    void setVersion(@Nullable final SAMLVersion version);
 
     /**
      * Return the Issue Instant (attribute).
      * 
      * @return the IssueInstant
      */
-    Instant getIssueInstant();
+    @Nullable Instant getIssueInstant();
 
     /** Set the Issue Instant (attribute).     * 
      * @param date what to set
      */
-    void setIssueInstant(Instant date);
+    void setIssueInstant(@Nullable final Instant date);
 
     /**
      * Return the Recipient (attribute). .
      * 
      * @return the Recipient
      */
-    String getRecipient();
+    @Nullable String getRecipient();
 
     /** Set the Recipient (attribute).     * 
      * @param recipient what to set
      */
-    void setRecipient(String recipient);
+    void setRecipient(@Nullable final String recipient);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java
index ee14a9e6a..24e490c99 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java
@@ -31,16 +31,16 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Statement extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Statement";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Statement";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "StatementAbstractType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "StatementAbstractType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java
index 9949fc122..c866593f0 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java
@@ -18,6 +18,7 @@
 package org.opensaml.saml.saml1.core;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -31,17 +32,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface Status extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Status";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Status";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "StatusType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "StatusType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /**
@@ -49,40 +50,40 @@ public interface Status extends SAMLObject {
      * 
      * @return object representing the <code>StatusMessage</code> (element)
      */
-    public StatusMessage getStatusMessage();
+    @Nullable StatusMessage getStatusMessage();
 
     /**
      * Set the object representing the <code>StatusMessage</code> (element).
      * 
      * @param statusMessage object representing the <code>StatusMessage</code> (element)
      */
-    public void setStatusMessage(StatusMessage statusMessage);
+    void setStatusMessage(@Nullable final StatusMessage statusMessage);
 
     /**
      * Get the object representing the <code>StatusCode</code> (element).
      * 
      * @return object representing the <code>StatusCode</code> (element)
      */
-    public StatusCode getStatusCode();
+    @Nullable StatusCode getStatusCode();
 
     /**
      * Set the object representing the <code>StatusCode</code> (element).
      * 
      * @param statusCode object representing the <code>StatusCode</code> (element)
      */
-    public void setStatusCode(StatusCode statusCode);
+    void setStatusCode(@Nullable final StatusCode statusCode);
 
     /**
      * Get the object representing the <code>StatusDetail</code> (element).
      * 
      * @return object representing the <code>StatusDetail</code> (element)
      */
-    public StatusDetail getStatusDetail();
+    @Nullable StatusDetail getStatusDetail();
 
     /**
      * Set the object representing the <code>StatusDetail</code> (element).
      * 
      * @param statusDetail object representing the <code>StatusDetail</code> (element)
      */
-    public void setStatusDetail(StatusDetail statusDetail);
+    void setStatusDetail(@Nullable final StatusDetail statusDetail);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java
index 2d95755a6..332b565e8 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java
@@ -18,6 +18,7 @@
 package org.opensaml.saml.saml1.core;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -31,87 +32,87 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface StatusCode extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusCode";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusCode";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "StatusCodeType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "StatusCodeType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML1P_PREFIX);
 
     /** Success status value. */
-    @Nonnull public static final QName SUCCESS =
+    @Nonnull static final QName SUCCESS =
             new QName(SAMLConstants.SAML10P_NS, "Success", SAMLConstants.SAML1P_PREFIX);
 
     /** VersionMismatch status value. */
-    @Nonnull public static final QName VERSION_MISMATCH = new QName(SAMLConstants.SAML10P_NS, "VersionMismatch",
+    @Nonnull static final QName VERSION_MISMATCH = new QName(SAMLConstants.SAML10P_NS, "VersionMismatch",
             SAMLConstants.SAML1P_PREFIX);
 
     /** Requester status value. */
-    @Nonnull public static final QName REQUESTER =
+    @Nonnull static final QName REQUESTER =
             new QName(SAMLConstants.SAML10P_NS, "Requester", SAMLConstants.SAML1P_PREFIX);
 
     /** Responder status value. */
-    @Nonnull public static final QName RESPONDER =
+    @Nonnull static final QName RESPONDER =
             new QName(SAMLConstants.SAML10P_NS, "Responder", SAMLConstants.SAML1P_PREFIX);
 
     /** RequestVersionTooHigh status value. */
-    @Nonnull public static final QName REQUEST_VERSION_TOO_HIGH =
+    @Nonnull static final QName REQUEST_VERSION_TOO_HIGH =
             new QName(SAMLConstants.SAML10P_NS, "RequestVersionTooHigh", SAMLConstants.SAML1P_PREFIX);
 
     /** RequestVersionTooLow status value. */
-    @Nonnull public static final QName REQUEST_VERSION_TOO_LOW =
+    @Nonnull static final QName REQUEST_VERSION_TOO_LOW =
             new QName(SAMLConstants.SAML10P_NS, "RequestVersionTooLow", SAMLConstants.SAML1P_PREFIX);
 
     /** RequestVersionDepricated status value. */
-    @Nonnull public static final QName REQUEST_VERSION_DEPRECATED = new QName(SAMLConstants.SAML10P_NS,
+    @Nonnull static final QName REQUEST_VERSION_DEPRECATED = new QName(SAMLConstants.SAML10P_NS,
             "RequestVersionDeprecated", SAMLConstants.SAML1P_PREFIX);
 
     /** TooManyResponses status value. */
-    @Nonnull public static final QName TOO_MANY_RESPONSES = new QName(SAMLConstants.SAML10P_NS, "TooManyResponses",
+    @Nonnull static final QName TOO_MANY_RESPONSES = new QName(SAMLConstants.SAML10P_NS, "TooManyResponses",
             SAMLConstants.SAML1P_PREFIX);
 
     /** RequestDenied status value. */
-    @Nonnull public static final QName REQUEST_DENIED = new QName(SAMLConstants.SAML10P_NS, "RequestDenied",
+    @Nonnull static final QName REQUEST_DENIED = new QName(SAMLConstants.SAML10P_NS, "RequestDenied",
             SAMLConstants.SAML1P_PREFIX);
 
     /** ResourceNotRecognized status value. */
-    @Nonnull public static final QName RESOURCE_NOT_RECOGNIZED =
+    @Nonnull static final QName RESOURCE_NOT_RECOGNIZED =
             new QName(SAMLConstants.SAML10P_NS, "ResourceNotRecognized", SAMLConstants.SAML1P_PREFIX);
 
     /** Name for the attribute which defines the Value. */
-    @Nonnull @NotEmpty public static final String VALUE_ATTRIB_NAME = "Value";
+    @Nonnull @NotEmpty static final String VALUE_ATTRIB_NAME = "Value";
 
     /**
      * Gets the value of the status code.
      * 
      * @return value of the status code
      */
-    public QName getValue();
+    @Nullable QName getValue();
 
     /**
      * Sets the value of the status code.
      * 
      * @param value value of the status code
      */
-    public void setValue(QName value);
+    void setValue(@Nullable final QName value);
 
     /**
      * Gets the second level status code.
      * 
      * @return second level status code
      */
-    public StatusCode getStatusCode();
+    @Nullable StatusCode getStatusCode();
 
     /**
      * Sets the second level status code.
      * 
      * @param statusCode second level status code
      */
-    public void setStatusCode(StatusCode statusCode);
+    void setStatusCode(@Nullable final StatusCode statusCode);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java
index 2bc0d6b80..83d13b684 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java
@@ -33,17 +33,18 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
  * Interface to describe how a <code>StatusDetail</code> element behaves.
  */
 public interface StatusDetail extends SAMLObject, ElementExtensibleXMLObject {
+    
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusDetail";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusDetail";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "StatusDetailType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "StatusDetailType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusMessage.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusMessage.java
index 08f419f6f..cf8046a0d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusMessage.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusMessage.java
@@ -18,7 +18,6 @@
 package org.opensaml.saml.saml1.core;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSString;
@@ -38,25 +37,5 @@ public interface StatusMessage extends SAMLObject, XSString {
     /** Default element name. */
     @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
-    
-    /**
-     * Get the message.
-     * 
-     * @return  the message
-     */
-    @Deprecated(forRemoval=true, since="4.0.0")
-    @Nullable default String getMessage() {
-        return getValue();
-    }
-
-    /**
-     * Set the message.
-     * 
-     * @param value  the message
-     */
-    @Deprecated(forRemoval=true, since="4.0.0")
-    default void setMessage(@Nullable final String value) {
-        setValue(value);
-    }
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java
index 0b6642b91..ff9e0384f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java
@@ -21,6 +21,7 @@
 package org.opensaml.saml.saml1.core;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,18 +33,19 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
  * Interface to describe how the <code> Subject </code> elements work.
  */
 public interface Subject extends SAMLObject {
+
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Subject";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "Subject";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "SubjectType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "SubjectType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /**
@@ -51,27 +53,27 @@ public interface Subject extends SAMLObject {
      * 
      * @return the name identifier
      */
-    public NameIdentifier getNameIdentifier();
+    @Nullable NameIdentifier getNameIdentifier();
     
     /**
      * Set the name identifier.
      * 
      * @param nameIdentifier the name identifier
      */
-    public void setNameIdentifier(NameIdentifier nameIdentifier);
+    void setNameIdentifier(@Nullable final NameIdentifier nameIdentifier);
     
     /**
      * Get the subject confirmation.
      * 
      * @return the subject confirmation
      */
-    public SubjectConfirmation getSubjectConfirmation();
+    @Nullable SubjectConfirmation getSubjectConfirmation();
     
     /**
      * Set the subject confirmation.
      * 
      * @param subjectConfirmation the subject confirmation
      */
-    public void setSubjectConfirmation(SubjectConfirmation subjectConfirmation);
+    void setSubjectConfirmation(@Nullable final SubjectConfirmation subjectConfirmation);
     
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java
index c3d47febb..cd701f260 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java
@@ -24,6 +24,7 @@ package org.opensaml.saml.saml1.core;
 import java.util.List;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.XMLObject;
@@ -31,6 +32,7 @@ import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.xmlsec.signature.KeyInfo;
 
+import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 
 /**
@@ -39,17 +41,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface SubjectConfirmation extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "SubjectConfirmationType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "SubjectConfirmationType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /**
@@ -57,33 +59,33 @@ public interface SubjectConfirmation extends SAMLObject {
      * 
      * @return mutable list of ConfirmationMethods.
      */
-    public List<ConfirmationMethod> getConfirmationMethods();
+    @Nonnull @Live List<ConfirmationMethod> getConfirmationMethods();
 
     /**
      * Set the SubjectConfirmationData.
      * 
      * @param subjectConfirmationData data to set
      */
-    public void setSubjectConfirmationData(XMLObject subjectConfirmationData);
+    void setSubjectConfirmationData(@Nullable final XMLObject subjectConfirmationData);
 
     /**
      * Get the SubjectConfirmationData.
      * 
      * @return the SubjectConfirmationData
      */
-    public XMLObject getSubjectConfirmationData();
+    @Nullable XMLObject getSubjectConfirmationData();
     
     /**
      * Gets the key information for the subject.
      * 
      * @return the key information for the subject
      */
-    public KeyInfo getKeyInfo();
+    @Nullable KeyInfo getKeyInfo();
 
     /**
      * Sets the key information for the subject.
      * 
      * @param keyInfo the key information for the subject
      */
-    public void setKeyInfo(KeyInfo keyInfo);
+    void setKeyInfo(@Nullable final KeyInfo keyInfo);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java
index 406fef3d1..fe2808b87 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java
@@ -36,50 +36,50 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface SubjectLocality extends SAMLObject {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectLocality";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectLocality";
 
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "SubjectLocalityType";
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "SubjectLocalityType";
 
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name for the IPAddress attribute. */
-    @Nonnull @NotEmpty public static final String IPADDRESS_ATTRIB_NAME = "IPAddress";
+    @Nonnull @NotEmpty static final String IPADDRESS_ATTRIB_NAME = "IPAddress";
 
     /** Name for the DNSAddress attribute. */
-    @Nonnull @NotEmpty public static final String DNSADDRESS_ATTRIB_NAME = "DNSAddress";
+    @Nonnull @NotEmpty static final String DNSADDRESS_ATTRIB_NAME = "DNSAddress";
 
     /**
      * Gets the IP address of the locality.
      * 
      * @return IP address of the locality
      */
-    @Nullable public String getIPAddress();
+    @Nullable String getIPAddress();
 
     /**
      * Sets the IP address of the locality.
      * 
      * @param address IP address of the locality
      */
-    public void setIPAddress(@Nullable final String address);
+    void setIPAddress(@Nullable final String address);
 
     /**
      * Gets the DNS name of the locality.
      * 
      * @return DNS name of the locality
      */
-    @Nullable public String getDNSAddress();
+    @Nullable String getDNSAddress();
 
     /**
      * Sets the DNS name of the locality.
      * 
      * @param address DNS name of the locality
      */
-    public void setDNSAddress(@Nullable final String address);
+    void setDNSAddress(@Nullable final String address);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java
index 402d93545..25d759744 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java
@@ -31,17 +31,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface SubjectQuery extends Query {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectQuery";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectQuery";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "SubjectQueryAbstractType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "SubjectQueryAbstractType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /**
@@ -49,12 +49,12 @@ public interface SubjectQuery extends Query {
      * 
      * @return the subject
      */
-    @Nullable public Subject getSubject();
+    @Nullable Subject getSubject();
     
     /**
      * Set the subject.
      * 
      * @param subject the subject
      */
-    public void setSubject(@Nullable Subject subject);
+    void setSubject(@Nullable Subject subject);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java
index 2c14a54e5..de01aae20 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java
@@ -18,6 +18,7 @@
 package org.opensaml.saml.saml1.core;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -31,17 +32,17 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 public interface SubjectStatement extends SAMLObject, Statement {
 
     /** Element name, no namespace. */
-    @Nonnull @NotEmpty public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectStatement";
+    @Nonnull @NotEmpty static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectStatement";
     
     /** Default element name. */
-    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    @Nonnull @NotEmpty public static final String TYPE_LOCAL_NAME = "SubjectStatementAbstractType"; 
+    @Nonnull @NotEmpty static final String TYPE_LOCAL_NAME = "SubjectStatementAbstractType"; 
         
     /** QName of the XSI type. */
-    @Nonnull public static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /**
@@ -49,12 +50,12 @@ public interface SubjectStatement extends SAMLObject, Statement {
      * 
      * @return the Subject
      */
-    public Subject getSubject();
+    @Nullable Subject getSubject();
     
     /**
      * Set the Subject of the statement.
      * 
      * @param subject the Subject
      */
-    public void setSubject(Subject subject);
+    void setSubject(@Nullable final Subject subject);
 }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseBuilder.java
index 2c909b6d1..02f631b44 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/idpdisco/impl/DiscoveryResponseBuilder.java
@@ -17,6 +17,8 @@
 
 package org.opensaml.saml.ext.idpdisco.impl;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.idpdisco.DiscoveryResponse;
@@ -24,21 +26,15 @@ import org.opensaml.saml.ext.idpdisco.DiscoveryResponse;
 /** Builder of {@link org.opensaml.saml.ext.idpdisco.DiscoveryResponse}. */
 public class DiscoveryResponseBuilder extends AbstractSAMLObjectBuilder<DiscoveryResponse> {
 
-    /** Constructor. */
-    public DiscoveryResponseBuilder() {
-
-    }
-
     /** {@inheritDoc} */
     @Override
-    public DiscoveryResponse buildObject() {
+    @Nonnull public DiscoveryResponse buildObject() {
         return buildObject(SAMLConstants.SAML_IDP_DISCO_NS, DiscoveryResponse.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML_IDP_DISCO_PREFIX);
     }
 
     /** {@inheritDoc} */
-    @Override
-    public DiscoveryResponse buildObject(final String namespaceURI, final String localName,
+    @Nonnull public DiscoveryResponse buildObject(final String namespaceURI, final String localName,
             final String namespacePrefix) {
         return new DiscoveryResponseImpl(namespaceURI, localName, namespacePrefix);
     }
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 b328bf297..68ac16db0 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
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.ext.idpdisco.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.ext.idpdisco.DiscoveryResponse;
 import org.opensaml.saml.saml2.metadata.impl.IndexedEndpointImpl;
 
@@ -37,8 +40,8 @@ public class DiscoveryResponseImpl extends IndexedEndpointImpl implements Discov
      * @param elementLocalName the local name
      * @param namespacePrefix the prefix
      */
-    protected DiscoveryResponseImpl(final String namespaceURI, final String elementLocalName,
-            final String namespacePrefix) {
+    protected DiscoveryResponseImpl(@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/saml2/metadata/impl/IndexedEndpointImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/IndexedEndpointImpl.java
index c32677857..df626a13d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/IndexedEndpointImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/IndexedEndpointImpl.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.core.xml.schema.XSBooleanValue;
 import org.opensaml.saml.saml2.metadata.IndexedEndpoint;
 
@@ -30,10 +33,10 @@ import org.opensaml.saml.saml2.metadata.IndexedEndpoint;
 public abstract class IndexedEndpointImpl extends EndpointImpl implements IndexedEndpoint {
 
     /** Index of this endpoint. */
-    private Integer index;
+    @Nullable private Integer index;
 
     /** isDefault attribute. */
-    private XSBooleanValue isDefault;
+    @Nullable private XSBooleanValue isDefault;
     
     /**
      * Constructor.
@@ -42,13 +45,13 @@ public abstract class IndexedEndpointImpl extends EndpointImpl implements Indexe
      * @param elementLocalName the local name of the XML element this Object represents
      * @param namespacePrefix the prefix for the given namespace
      */
-    protected IndexedEndpointImpl(final String namespaceURI, final String elementLocalName,
-            final String namespacePrefix) {
+    protected IndexedEndpointImpl(@Nullable final String namespaceURI, @Nonnull final String elementLocalName,
+            @Nullable final String namespacePrefix) {
         super(namespaceURI, elementLocalName, namespacePrefix);
     }
 
     /** {@inheritDoc} */
-    public Integer getIndex() {
+    @Nullable public Integer getIndex() {
         return index;
     }
 
@@ -58,7 +61,7 @@ public abstract class IndexedEndpointImpl extends EndpointImpl implements Indexe
     }
     
     /** {@inheritDoc} */
-    public Boolean isDefault() {
+    @Nullable public Boolean isDefault() {
         if (isDefault == null) {
             return Boolean.FALSE;
         }
@@ -66,12 +69,12 @@ public abstract class IndexedEndpointImpl extends EndpointImpl implements Indexe
     }
 
     /** {@inheritDoc} */
-    public XSBooleanValue isDefaultXSBoolean() {
+    @Nullable public XSBooleanValue isDefaultXSBoolean() {
         return isDefault;
     }
     
     /** {@inheritDoc} */
-    public void setIsDefault(final Boolean newIsDefault){
+    public void setIsDefault(@Nullable final Boolean newIsDefault){
         if(newIsDefault != null){
             isDefault = prepareForAssignment(isDefault, new XSBooleanValue(newIsDefault, false));
         }else{
@@ -80,7 +83,8 @@ public abstract class IndexedEndpointImpl extends EndpointImpl implements Indexe
     }
 
     /** {@inheritDoc} */
-    public void setIsDefault(final XSBooleanValue theIsDefault) {
+    public void setIsDefault(@Nullable final XSBooleanValue theIsDefault) {
         this.isDefault = prepareForAssignment(this.isDefault, theIsDefault);
     }
+
 }
\ 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