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

Scott Cantor cantor.2 at osu.edu
Tue Apr 4 15:02:56 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=c4f2ff5d4e4f972d36ff47dc07944f72594bbb83

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

commit c4f2ff5d4e4f972d36ff47dc07944f72594bbb83
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Apr 4 11:02:52 2023 -0400

    IDP-2069 - Null Handling Task
    
    https://shibboleth.atlassian.net/browse/IDP-2069
    
    Clean up SAML object builders.
---
 .../saml/ext/saml1md/impl/SourceIDBuilder.java     | 17 ++++++------
 .../ext/saml2alg/impl/DigestMethodBuilder.java     | 19 +++++++-------
 .../ext/saml2alg/impl/SigningMethodBuilder.java    | 19 +++++++-------
 .../ext/saml2aslo/impl/AsynchronousBuilder.java    | 20 +++++++--------
 .../ext/saml2cb/impl/ChannelBindingsBuilder.java   | 18 ++++++-------
 .../ext/saml2delrestrict/impl/DelegateBuilder.java | 18 ++++++-------
 .../impl/DelegationRestrictionTypeBuilder.java     | 18 ++++++-------
 .../saml2mdattr/impl/EntityAttributesBuilder.java  | 19 +++++++-------
 .../saml2mdquery/impl/ActionNamespaceBuilder.java  | 17 ++++++------
 .../impl/AttributeQueryDescriptorTypeBuilder.java  | 14 +++++++---
 .../impl/AuthnQueryDescriptorTypeBuilder.java      | 14 +++++++---
 .../AuthzDecisionQueryDescriptorTypeBuilder.java   | 10 +++++---
 .../impl/RequestInitiatorBuilder.java              | 21 ++++++++-------
 .../ext/saml2mdrpi/impl/PublicationBuilder.java    | 17 +++++++-----
 .../saml2mdrpi/impl/PublicationInfoBuilder.java    | 17 +++++++-----
 .../saml2mdrpi/impl/PublicationPathBuilder.java    | 17 +++++++-----
 .../saml2mdrpi/impl/RegistrationInfoBuilder.java   | 17 +++++++-----
 .../saml2mdrpi/impl/RegistrationPolicyBuilder.java | 19 ++++++++------
 .../ext/saml2mdrpi/impl/UsagePolicyBuilder.java    | 15 +++++++----
 .../ext/saml2mdui/impl/DescriptionBuilder.java     | 11 ++++++--
 .../saml/ext/saml2mdui/impl/DiscoHintsBuilder.java | 18 ++++++-------
 .../ext/saml2mdui/impl/DisplayNameBuilder.java     | 18 ++++++-------
 .../saml/ext/saml2mdui/impl/DomainHintBuilder.java | 18 ++++++-------
 .../ext/saml2mdui/impl/GeolocationHintBuilder.java | 19 +++++++-------
 .../saml/ext/saml2mdui/impl/IPHintBuilder.java     | 18 ++++++-------
 .../ext/saml2mdui/impl/InformationURLBuilder.java  | 19 +++++++-------
 .../saml/ext/saml2mdui/impl/KeywordsBuilder.java   | 19 +++++++-------
 .../saml/ext/saml2mdui/impl/LogoBuilder.java       | 18 ++++++-------
 .../saml2mdui/impl/PrivacyStatementURLBuilder.java | 19 +++++++-------
 .../saml/ext/saml2mdui/impl/UIInfoBuilder.java     | 18 ++++++-------
 .../saml/ext/samlec/impl/EncTypeBuilder.java       | 18 ++++++-------
 .../saml/ext/samlec/impl/GeneratedKeyBuilder.java  | 19 +++++++-------
 .../saml/ext/samlec/impl/SessionKeyBuilder.java    | 17 ++++++------
 .../ext/samlpthrpty/impl/RespondToBuilder.java     | 13 +++++++---
 .../saml/saml1/core/impl/ActionBuilder.java        | 18 ++++++-------
 .../saml/saml1/core/impl/AdviceBuilder.java        | 20 ++++++---------
 .../saml1/core/impl/AssertionArtifactBuilder.java  | 19 ++++++--------
 .../saml/saml1/core/impl/AssertionBuilder.java     | 18 ++++++-------
 .../core/impl/AssertionIDReferenceBuilder.java     | 19 ++++++--------
 .../saml/saml1/core/impl/AttributeBuilder.java     | 20 +++++++--------
 .../core/impl/AttributeDesignatorBuilder.java      | 20 +++++++--------
 .../saml1/core/impl/AttributeQueryBuilder.java     | 20 +++++++--------
 .../saml1/core/impl/AttributeStatementBuilder.java | 21 ++++++++-------
 .../saml1/core/impl/AttributeUnmarshaller.java     |  2 +-
 .../saml1/core/impl/AttributeValueBuilder.java     | 11 +++++---
 .../saml/saml1/core/impl/AudienceBuilder.java      | 20 +++++++--------
 .../impl/AudienceRestrictionConditionBuilder.java  | 21 ++++++++-------
 .../core/impl/AuthenticationQueryBuilder.java      | 21 ++++++++-------
 .../core/impl/AuthenticationStatementBuilder.java  | 21 ++++++++-------
 .../saml1/core/impl/AuthorityBindingBuilder.java   | 21 ++++++++-------
 .../impl/AuthorizationDecisionQueryBuilder.java    | 21 ++++++++-------
 .../AuthorizationDecisionStatementBuilder.java     | 21 ++++++++-------
 ...AuthorizationDecisionStatementUnmarshaller.java |  2 +-
 .../saml/saml1/core/impl/ConditionsBuilder.java    | 22 ++++++++--------
 .../saml1/core/impl/ConfirmationMethodBuilder.java | 21 ++++++++-------
 .../core/impl/DoNotCacheConditionBuilder.java      | 21 ++++++++-------
 .../saml/saml1/core/impl/EvidenceBuilder.java      | 20 +++++++--------
 .../saml1/core/impl/NameIdentifierBuilder.java     | 20 +++++++--------
 .../saml/saml1/core/impl/RequestBuilder.java       | 18 +++++++------
 .../saml/saml1/core/impl/RespondWithBuilder.java   | 13 +++++++---
 .../saml/saml1/core/impl/ResponseBuilder.java      | 13 +++++++---
 .../saml/saml1/core/impl/StatusBuilder.java        | 20 +++++++--------
 .../saml/saml1/core/impl/StatusCodeBuilder.java    | 20 +++++++--------
 .../saml/saml1/core/impl/StatusDetailBuilder.java  | 20 +++++++--------
 .../saml/saml1/core/impl/StatusMessageBuilder.java | 20 +++++++--------
 .../saml/saml1/core/impl/SubjectBuilder.java       | 20 +++++++--------
 .../core/impl/SubjectConfirmationBuilder.java      | 21 ++++++++-------
 .../core/impl/SubjectConfirmationDataBuilder.java  | 11 +++++---
 .../saml1/core/impl/SubjectLocalityBuilder.java    | 21 ++++++++-------
 .../saml/saml2/core/impl/ActionBuilder.java        | 18 +++++++------
 .../saml/saml2/core/impl/AdviceBuilder.java        | 17 +++++++-----
 .../saml/saml2/core/impl/ArtifactBuilder.java      | 19 +++++++-------
 .../saml2/core/impl/ArtifactResolveBuilder.java    | 21 ++++++++-------
 .../saml2/core/impl/ArtifactResponseBuilder.java   | 21 ++++++++-------
 .../saml/saml2/core/impl/AssertionBuilder.java     | 18 +++++++------
 .../saml2/core/impl/AssertionIDRefBuilder.java     | 18 +++++++------
 .../saml2/core/impl/AssertionIDRequestBuilder.java | 20 +++++++--------
 .../saml2/core/impl/AssertionURIRefBuilder.java    | 19 +++++++-------
 .../saml/saml2/core/impl/AttributeBuilder.java     | 20 +++++++--------
 .../saml2/core/impl/AttributeQueryBuilder.java     | 20 +++++++--------
 .../saml2/core/impl/AttributeStatementBuilder.java | 19 +++++++-------
 .../saml2/core/impl/AttributeValueBuilder.java     | 11 +++++---
 .../saml/saml2/core/impl/AudienceBuilder.java      | 17 +++++++-----
 .../core/impl/AudienceRestrictionBuilder.java      | 19 +++++++-------
 .../core/impl/AuthenticatingAuthorityBuilder.java  | 19 +++++++-------
 .../saml/saml2/core/impl/AuthnContextBuilder.java  | 18 +++++++------
 .../core/impl/AuthnContextClassRefBuilder.java     | 19 +++++++-------
 .../saml2/core/impl/AuthnContextDeclBuilder.java   | 14 +++++++---
 .../core/impl/AuthnContextDeclRefBuilder.java      | 19 +++++++-------
 .../saml/saml2/core/impl/AuthnQueryBuilder.java    | 20 +++++++--------
 .../saml/saml2/core/impl/AuthnRequestBuilder.java  | 20 +++++++--------
 .../saml2/core/impl/AuthnStatementBuilder.java     | 17 +++++++-----
 .../saml2/core/impl/AuthzDecisionQueryBuilder.java | 21 ++++++++-------
 .../core/impl/AuthzDecisionStatementBuilder.java   | 19 +++++++-------
 .../saml/saml2/core/impl/ConditionsBuilder.java    | 18 +++++++------
 .../saml2/core/impl/EncryptedAssertionBuilder.java | 22 ++++++++--------
 .../saml2/core/impl/EncryptedAttributeBuilder.java | 22 ++++++++--------
 .../saml/saml2/core/impl/EncryptedIDBuilder.java   | 21 ++++++++-------
 .../saml/saml2/core/impl/EvidenceBuilder.java      | 18 +++++++------
 .../saml/saml2/core/impl/ExtensionsBuilder.java    | 13 +++++++---
 .../saml/saml2/core/impl/GetCompleteBuilder.java   | 19 +++++++-------
 .../saml/saml2/core/impl/IDPEntryBuilder.java      | 19 +++++++-------
 .../saml/saml2/core/impl/IDPListBuilder.java       | 20 +++++++--------
 .../saml/saml2/core/impl/IssuerBuilder.java        | 17 +++++++-----
 .../impl/KeyInfoConfirmationDataTypeBuilder.java   | 18 +++++++------
 .../saml/saml2/core/impl/LogoutRequestBuilder.java | 19 +++++++-------
 .../saml2/core/impl/LogoutResponseBuilder.java     | 19 +++++++-------
 .../core/impl/ManageNameIDRequestBuilder.java      | 21 ++++++++-------
 .../core/impl/ManageNameIDResponseBuilder.java     | 21 ++++++++-------
 .../saml2/core/impl/ManageNameIDResponseImpl.java  |  2 +-
 .../saml/saml2/core/impl/NameIDBuilder.java        | 18 +++++++------
 .../core/impl/NameIDMappingRequestBuilder.java     | 21 ++++++++-------
 .../core/impl/NameIDMappingResponseBuilder.java    | 21 ++++++++-------
 .../saml/saml2/core/impl/NameIDPolicyBuilder.java  | 19 +++++++-------
 .../saml2/core/impl/NewEncryptedIDBuilder.java     | 21 ++++++++-------
 .../saml/saml2/core/impl/NewIDBuilder.java         | 19 +++++++-------
 .../saml/saml2/core/impl/OneTimeUseBuilder.java    | 18 +++++++------
 .../saml2/core/impl/ProxyRestrictionBuilder.java   | 18 +++++++------
 .../core/impl/RequestedAuthnContextBuilder.java    | 20 +++++++--------
 .../saml/saml2/core/impl/RequesterIDBuilder.java   | 19 +++++++-------
 .../saml/saml2/core/impl/ResponseBuilder.java      | 20 +++++++--------
 .../saml/saml2/core/impl/ScopingBuilder.java       | 19 +++++++-------
 .../saml/saml2/core/impl/SessionIndexBuilder.java  | 19 +++++++-------
 .../saml/saml2/core/impl/StatusBuilder.java        | 20 +++++++--------
 .../saml/saml2/core/impl/StatusCodeBuilder.java    | 20 +++++++--------
 .../saml/saml2/core/impl/StatusDetailBuilder.java  | 20 +++++++--------
 .../saml/saml2/core/impl/StatusMessageBuilder.java | 20 +++++++--------
 .../saml/saml2/core/impl/SubjectBuilder.java       | 18 +++++++------
 .../core/impl/SubjectConfirmationBuilder.java      | 19 +++++++-------
 .../core/impl/SubjectConfirmationDataBuilder.java  | 19 +++++++-------
 .../saml2/core/impl/SubjectLocalityBuilder.java    | 19 +++++++-------
 .../saml/saml2/core/impl/TerminateBuilder.java     | 19 +++++++-------
 .../saml/saml2/ecp/impl/RelayStateBuilder.java     | 18 ++++++-------
 .../ecp/impl/RequestAuthenticatedBuilder.java      | 19 +++++++-------
 .../saml/saml2/ecp/impl/RequestBuilder.java        | 18 ++++++-------
 .../saml/saml2/ecp/impl/ResponseBuilder.java       | 18 ++++++-------
 .../saml2/ecp/impl/SubjectConfirmationBuilder.java | 20 +++++++--------
 .../impl/AdditionalMetadataLocationBuilder.java    | 21 ++++++++-------
 .../metadata/impl/AffiliateMemberBuilder.java      | 21 ++++++++-------
 .../impl/AffiliationDescriptorBuilder.java         | 21 ++++++++-------
 .../impl/ArtifactResolutionServiceBuilder.java     | 21 ++++++++-------
 .../impl/AssertionConsumerServiceBuilder.java      | 21 ++++++++-------
 .../impl/AssertionIDRequestServiceBuilder.java     | 21 ++++++++-------
 .../impl/AttributeAuthorityDescriptorBuilder.java  | 21 ++++++++-------
 .../impl/AttributeConsumingServiceBuilder.java     | 21 ++++++++-------
 .../metadata/impl/AttributeProfileBuilder.java     | 21 ++++++++-------
 .../metadata/impl/AttributeServiceBuilder.java     | 21 ++++++++-------
 .../impl/AuthnAuthorityDescriptorBuilder.java      | 21 ++++++++-------
 .../metadata/impl/AuthnQueryServiceBuilder.java    | 21 ++++++++-------
 .../saml2/metadata/impl/AuthzServiceBuilder.java   | 20 +++++++--------
 .../saml/saml2/metadata/impl/CompanyBuilder.java   | 20 +++++++--------
 .../saml2/metadata/impl/ContactPersonBuilder.java  | 20 +++++++--------
 .../saml2/metadata/impl/EmailAddressBuilder.java   | 20 +++++++--------
 .../metadata/impl/EncryptionMethodBuilder.java     | 30 ++++++++++------------
 .../metadata/impl/EntitiesDescriptorBuilder.java   | 23 ++++++++---------
 .../metadata/impl/EntityDescriptorBuilder.java     | 23 ++++++++---------
 .../saml2/metadata/impl/ExtensionsBuilder.java     | 13 +++++++---
 .../saml/saml2/metadata/impl/GivenNameBuilder.java | 20 +++++++--------
 .../metadata/impl/IDPSSODescriptorBuilder.java     | 21 ++++++++-------
 .../saml2/metadata/impl/KeyDescriptorBuilder.java  | 13 +++++++---
 .../metadata/impl/ManageNameIDServiceBuilder.java  | 21 ++++++++-------
 .../saml2/metadata/impl/NameIDFormatBuilder.java   | 20 +++++++--------
 .../metadata/impl/NameIDMappingServiceBuilder.java | 21 ++++++++-------
 .../saml2/metadata/impl/OrganizationBuilder.java   | 20 +++++++--------
 .../impl/OrganizationDisplayNameBuilder.java       | 21 ++++++++-------
 .../metadata/impl/OrganizationNameBuilder.java     | 21 ++++++++-------
 .../metadata/impl/OrganizationURLBuilder.java      | 21 ++++++++-------
 .../saml2/metadata/impl/PDPDescriptorBuilder.java  | 20 +++++++--------
 .../metadata/impl/RequestedAttributeBuilder.java   | 19 +++++++-------
 .../metadata/impl/SPSSODescriptorBuilder.java      | 21 ++++++++-------
 .../metadata/impl/ServiceDescriptionBuilder.java   | 21 ++++++++-------
 .../saml2/metadata/impl/ServiceNameBuilder.java    | 20 +++++++--------
 .../metadata/impl/SingleLogoutServiceBuilder.java  | 21 ++++++++-------
 .../metadata/impl/SingleSignOnServiceBuilder.java  | 21 ++++++++-------
 .../saml/saml2/metadata/impl/SurNameBuilder.java   | 20 +++++++--------
 .../metadata/impl/TelephoneNumberBuilder.java      | 21 ++++++++-------
 176 files changed, 1700 insertions(+), 1600 deletions(-)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDBuilder.java
index c8b3e18e3..c9d20a0f3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml1md/impl/SourceIDBuilder.java
@@ -17,27 +17,28 @@
 
 package org.opensaml.saml.ext.saml1md.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml1md.SourceID;
 
 /**
- * Builder of {@link SourceIDImpl} objects.
+ * Builder of {@link SourceID} objects.
  */
 public class SourceIDBuilder extends AbstractSAMLObjectBuilder<SourceID> {
 
-    /** Constructor. */
-    public SourceIDBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SourceID buildObject() {
+    @Override
+    @Nonnull public SourceID buildObject() {
         return buildObject(SAMLConstants.SAML1MD_NS, SourceID.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SourceID buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public SourceID buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SourceIDImpl(namespaceURI, localName, namespacePrefix);
     }
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodBuilder.java
index 8b1f12fd5..640e06650 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/DigestMethodBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2alg.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2alg.DigestMethod;
@@ -25,23 +28,19 @@ import org.opensaml.saml.ext.saml2alg.DigestMethod;
  * DigestMethod builder.
  */
 public class DigestMethodBuilder extends AbstractSAMLObjectBuilder<DigestMethod> {
-
-    /**
-     * Constructor.
-     *
-     */
-    public DigestMethodBuilder() {
-    }
     
     /** {@inheritDoc} */
-    public DigestMethod buildObject() {
+    @Override
+    @Nonnull public DigestMethod buildObject() {
         return buildObject(SAMLConstants.SAML20ALG_NS, DigestMethod.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20ALG_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public DigestMethod buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public DigestMethod buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new DigestMethodImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodBuilder.java
index 3659f7b99..0d0355b13 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2alg/impl/SigningMethodBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2alg.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2alg.SigningMethod;
@@ -25,23 +28,19 @@ import org.opensaml.saml.ext.saml2alg.SigningMethod;
  * SigningMethod builder.
  */
 public class SigningMethodBuilder extends AbstractSAMLObjectBuilder<SigningMethod> {
-
-    /**
-     * Constructor.
-     *
-     */
-    public SigningMethodBuilder() {
-    }
     
     /** {@inheritDoc} */
-    public SigningMethod buildObject() {
+    @Override
+    @Nonnull public SigningMethod buildObject() {
         return buildObject(SAMLConstants.SAML20ALG_NS, SigningMethod.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20ALG_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SigningMethod buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public SigningMethod buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SigningMethodImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousBuilder.java
index 3564c685e..212773628 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2aslo/impl/AsynchronousBuilder.java
@@ -21,31 +21,31 @@
 
 package org.opensaml.saml.ext.saml2aslo.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2aslo.Asynchronous;
 
 
 /**
- * A Builder for {@link AsynchronousImpl} objects.
+ * A Builder for {@link Asynchronous} objects.
  */
 public class AsynchronousBuilder extends AbstractSAMLObjectBuilder<Asynchronous> {
 
-    /**
-     * Constructor.
-     */
-    public AsynchronousBuilder() {
-        
-    }
-
     /** {@inheritDoc} */
-    public Asynchronous buildObject() {
+    @Override
+    @Nonnull public Asynchronous buildObject() {
         return buildObject(SAMLConstants.SAML20PASLO_NS, Asynchronous.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20PASLO_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Asynchronous buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Asynchronous buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AsynchronousImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsBuilder.java
index a6dfcd8b3..2e72b9742 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2cb/impl/ChannelBindingsBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.ext.saml2cb.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2cb.ChannelBindings;
@@ -31,21 +34,18 @@ import org.opensaml.saml.ext.saml2cb.ChannelBindings;
  */
 public class ChannelBindingsBuilder extends AbstractSAMLObjectBuilder<ChannelBindings> {
 
-    /**
-     * Constructor.
-     */
-    public ChannelBindingsBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public ChannelBindings buildObject() {
+    @Override
+    @Nonnull public ChannelBindings buildObject() {
         return buildObject(SAMLConstants.SAML20CB_NS, ChannelBindings.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20CB_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ChannelBindings buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ChannelBindings buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ChannelBindingsImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateBuilder.java
index b46956c8e..bf85f2cb4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegateBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.ext.saml2delrestrict.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.ext.saml2delrestrict.Delegate;
 
@@ -29,20 +32,17 @@ import org.opensaml.saml.ext.saml2delrestrict.Delegate;
  */
 public class DelegateBuilder extends AbstractSAMLObjectBuilder<Delegate> {
 
-    /**
-     * Constructor.
-     */
-    public DelegateBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Delegate buildObject() {
+    @Override
+    @Nonnull public Delegate buildObject() {
         return buildObject(Delegate.DEFAULT_ELEMENT_NAME);
     }
 
     /** {@inheritDoc} */
-    public Delegate buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Delegate buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new DelegateImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeBuilder.java
index d5f332084..03b3dfae0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2delrestrict/impl/DelegationRestrictionTypeBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.ext.saml2delrestrict.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.ext.saml2delrestrict.DelegationRestrictionType;
 
@@ -28,22 +31,17 @@ import org.opensaml.saml.ext.saml2delrestrict.DelegationRestrictionType;
  * Builder of {@link DelegationRestrictionType}.
  */
 public class DelegationRestrictionTypeBuilder extends AbstractSAMLObjectBuilder<DelegationRestrictionType> {
-
-    /**
-     * Constructor.
-     */
-    public DelegationRestrictionTypeBuilder() {
-
-    }
     
     /** {@inheritDoc} */
-    public DelegationRestrictionType buildObject() {
+    @Override
+    @Nonnull public DelegationRestrictionType buildObject() {
         return buildObject(DelegationRestrictionType.DEFAULT_ELEMENT_NAME, DelegationRestrictionType.TYPE_NAME);
     }
 
     /** {@inheritDoc} */
-    public DelegationRestrictionType buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public DelegationRestrictionType buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new DelegationRestrictionTypeImpl(namespaceURI, localName, namespacePrefix);
     }
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesBuilder.java
index 1b73eb1a3..8decc50b2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdattr/impl/EntityAttributesBuilder.java
@@ -17,25 +17,26 @@
 
 package org.opensaml.saml.ext.saml2mdattr.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.ext.saml2mdattr.EntityAttributes;
 
-/** Builder of {@link EntityAttributesImpl} objects. */
+/** Builder of {@link EntityAttributes} objects. */
 public class EntityAttributesBuilder extends AbstractSAMLObjectBuilder<EntityAttributes> {
 
-    /** Constructor. */
-    public EntityAttributesBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public EntityAttributes buildObject() {
+    @Override
+    @Nonnull public EntityAttributes buildObject() {
         return buildObject(EntityAttributes.DEFAULT_ELEMENT_NAME);
     }
 
     /** {@inheritDoc} */
-    public EntityAttributes buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public EntityAttributes buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EntityAttributesImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceBuilder.java
index 045a853f8..7f37c2da2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/ActionNamespaceBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdquery.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdquery.ActionNamespace;
 
 /**
- * Builder of {@link ActionNamespaceImpl} objects.
+ * Builder of {@link ActionNamespace} objects.
  */
 public class ActionNamespaceBuilder extends AbstractSAMLObjectBuilder<ActionNamespace> {
 
-    /** Constructor. */
-    public ActionNamespaceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
     @Override
-    public ActionNamespace buildObject() {
+    @Nonnull public ActionNamespace buildObject() {
         return buildObject(SAMLConstants.SAML20MDQUERY_NS, ActionNamespace.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDQUERY_PREFIX);
     }
 
     /** {@inheritDoc} */
     @Override
-    public ActionNamespace buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Nonnull public ActionNamespace buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ActionNamespaceImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeBuilder.java
index e8f12d4c0..e735aba7f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AttributeQueryDescriptorTypeBuilder.java
@@ -17,24 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdquery.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdquery.AttributeQueryDescriptorType;
 
 /**
- * Builder of {@link AttributeQueryDescriptorTypeImpl} objects.
+ * Builder of {@link AttributeQueryDescriptorType} objects.
  */
 public class AttributeQueryDescriptorTypeBuilder extends AbstractSAMLObjectBuilder<AttributeQueryDescriptorType> {
 
     /** {@inheritDoc} */
-    public AttributeQueryDescriptorType buildObject() {
+    @Override
+    @Nonnull public AttributeQueryDescriptorType buildObject() {
         return buildObject(SAMLConstants.SAML20MDQUERY_NS, AttributeQueryDescriptorType.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDQUERY_PREFIX, AttributeQueryDescriptorType.TYPE_NAME);
     }
 
     /** {@inheritDoc} */
-    public AttributeQueryDescriptorType buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeQueryDescriptorType buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AttributeQueryDescriptorTypeImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeBuilder.java
index 1d7686195..553eb87cc 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthnQueryDescriptorTypeBuilder.java
@@ -17,24 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdquery.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdquery.AuthnQueryDescriptorType;
 
 /**
- * Builder of {@link AuthnQueryDescriptorTypeImpl} objects.
+ * Builder of {@link AuthnQueryDescriptorType} objects.
  */
 public class AuthnQueryDescriptorTypeBuilder extends AbstractSAMLObjectBuilder<AuthnQueryDescriptorType> {
 
     /** {@inheritDoc} */
-    public AuthnQueryDescriptorType buildObject() {
+    @Override
+    @Nonnull public AuthnQueryDescriptorType buildObject() {
         return buildObject(SAMLConstants.SAML20MDQUERY_NS, AuthnQueryDescriptorType.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDQUERY_PREFIX, AuthnQueryDescriptorType.TYPE_NAME);
     }
 
     /** {@inheritDoc} */
-    public AuthnQueryDescriptorType buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnQueryDescriptorType buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthnQueryDescriptorTypeImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeBuilder.java
index b20387498..6aff71534 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdquery/impl/AuthzDecisionQueryDescriptorTypeBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdquery.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdquery.AuthzDecisionQueryDescriptorType;
@@ -29,15 +32,16 @@ public class AuthzDecisionQueryDescriptorTypeBuilder
 
     /** {@inheritDoc} */
     @Override
-    public AuthzDecisionQueryDescriptorType buildObject() {
+    @Nonnull public AuthzDecisionQueryDescriptorType buildObject() {
         return buildObject(SAMLConstants.SAML20MDQUERY_NS, AuthzDecisionQueryDescriptorType.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDQUERY_PREFIX, AuthzDecisionQueryDescriptorType.TYPE_NAME);
     }
 
     /** {@inheritDoc} */
     @Override
-    public AuthzDecisionQueryDescriptorType buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Nonnull public AuthzDecisionQueryDescriptorType buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthzDecisionQueryDescriptorTypeImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorBuilder.java
index 6a1a6cd2f..ba29792b1 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/impl/RequestInitiatorBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.ext.saml2mdreqinit.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdreqinit.RequestInitiator;
 
 /**
- * Builder of {@link org.opensaml.saml.ext.saml2mdreqinit.RequestInitiator}.
+ * Builder of {@link RequestInitiator}.
  */
 public class RequestInitiatorBuilder extends AbstractSAMLObjectBuilder<RequestInitiator> {
 
-    /**
-     * Constructor.
-     */
-    public RequestInitiatorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public RequestInitiator buildObject() {
+    @Override
+    @Nonnull public RequestInitiator buildObject() {
         return buildObject(SAMLConstants.SAML20MDRI_NS, RequestInitiator.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDRI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RequestInitiator buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public RequestInitiator buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RequestInitiatorImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationBuilder.java
index 813230669..10e4d5f99 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationBuilder.java
@@ -17,25 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdrpi.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdrpi.Publication;
 
-
-
 /**
- * Summon up a new {@link Publication}.
+ * Builder for {@link Publication}.
  */
 public class PublicationBuilder extends AbstractSAMLObjectBuilder<Publication> {
 
     /** {@inheritDoc} */
-    public Publication buildObject() {
+    @Override
+    @Nonnull public Publication buildObject() {
         return buildObject(SAMLConstants.SAML20MDRPI_NS, Publication.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDRPI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Publication buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Publication buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new PublicationImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoBuilder.java
index 3a41a023b..7240e67e7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationInfoBuilder.java
@@ -17,25 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdrpi.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdrpi.PublicationInfo;
 
-
 /**
- * Summon up a new {@link PublicationInfo}.
+ * Builder for {@link PublicationInfo}.
  */
 public class PublicationInfoBuilder extends AbstractSAMLObjectBuilder<PublicationInfo> {
 
     /** {@inheritDoc} */
-    public PublicationInfo buildObject() {
+    @Override
+    @Nonnull public PublicationInfo buildObject() {
         return buildObject(SAMLConstants.SAML20MDRPI_NS, PublicationInfo.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDRPI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public PublicationInfo buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public PublicationInfo buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new PublicationInfoImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathBuilder.java
index b1d870eba..3f5407fc0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/PublicationPathBuilder.java
@@ -17,25 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdrpi.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdrpi.PublicationPath;
 
-
 /**
- * Summon up a new {@link PublicationPath}.
+ * Builder for {@link PublicationPath}.
  */
 public class PublicationPathBuilder extends AbstractSAMLObjectBuilder<PublicationPath> {
 
     /** {@inheritDoc} */
-    public PublicationPath buildObject() {
+    @Override
+    @Nonnull public PublicationPath buildObject() {
         return buildObject(SAMLConstants.SAML20MDRPI_NS, PublicationPath.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDRPI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public PublicationPath buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public PublicationPath buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new PublicationPathImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoBuilder.java
index 0d8873255..016039bb3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationInfoBuilder.java
@@ -17,25 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdrpi.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdrpi.RegistrationInfo;
 
-
 /**
- * Summon up a new {@link RegistrationInfo}.
+ * Builder for {@link RegistrationInfo}.
  */
 public class RegistrationInfoBuilder extends AbstractSAMLObjectBuilder<RegistrationInfo> {
 
     /** {@inheritDoc} */
-    public RegistrationInfo buildObject() {
+    @Override
+    @Nonnull public RegistrationInfo buildObject() {
         return buildObject(SAMLConstants.SAML20MDRPI_NS, RegistrationInfo.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDRPI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RegistrationInfo buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public RegistrationInfo buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RegistrationInfoImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyBuilder.java
index e79083e6d..e1cf2763c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/RegistrationPolicyBuilder.java
@@ -17,27 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdrpi.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdrpi.RegistrationPolicy;
 
-
 /**
- * Summon up a new {@link RegistrationPolicy}.
+ * Builder for {@link RegistrationPolicy}.
  */
 public class RegistrationPolicyBuilder extends AbstractSAMLObjectBuilder<RegistrationPolicy> {
 
     /** {@inheritDoc} */
-    public RegistrationPolicy buildObject() {
-        return buildObject(SAMLConstants.SAML20MDRPI_NS, 
-                RegistrationPolicy.DEFAULT_ELEMENT_LOCAL_NAME,
+    @Override
+    @Nonnull public RegistrationPolicy buildObject() {
+        return buildObject(SAMLConstants.SAML20MDRPI_NS, RegistrationPolicy.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDRPI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RegistrationPolicy buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public RegistrationPolicy buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RegistrationPolicyImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyBuilder.java
index f131aed0f..8654ed092 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdrpi/impl/UsagePolicyBuilder.java
@@ -17,25 +17,30 @@
 
 package org.opensaml.saml.ext.saml2mdrpi.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdrpi.UsagePolicy;
 
-
 /**
- * Summon up a new {@link UsagePolicy}.
+ * Builder for {@link UsagePolicy}.
  */
 public class UsagePolicyBuilder extends AbstractSAMLObjectBuilder<UsagePolicy> {
 
     /** {@inheritDoc} */
-    public UsagePolicy buildObject() {
+    @Override
+    @Nonnull public UsagePolicy buildObject() {
         return buildObject(SAMLConstants.SAML20MDRPI_NS, UsagePolicy.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDRPI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public UsagePolicy buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public UsagePolicy buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new UsagePolicyImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionBuilder.java
index 56646f4ad..523dc603b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DescriptionBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.Description;
@@ -33,13 +36,17 @@ public class DescriptionBuilder extends AbstractSAMLObjectBuilder<Description> {
     }
 
     /** {@inheritDoc} */
-    public Description buildObject() {
+    @Override
+    @Nonnull public Description buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, Description.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Description buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Description buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new DescriptionImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsBuilder.java
index c5f71e4a1..74917bdb5 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DiscoHintsBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.DiscoHints;
@@ -26,21 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.DiscoHints;
  */
 public class DiscoHintsBuilder extends AbstractSAMLObjectBuilder<DiscoHints> {
 
-    /**
-     * Constructor.
-     */
-    public DiscoHintsBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public DiscoHints buildObject() {
+    @Override
+    @Nonnull public DiscoHints buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, DiscoHints.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public DiscoHints buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public DiscoHints buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new DiscoHintsImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameBuilder.java
index e7b331fbf..19d30041d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DisplayNameBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.DisplayName;
@@ -26,21 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.DisplayName;
  */
 public class DisplayNameBuilder extends AbstractSAMLObjectBuilder<DisplayName> {
 
-    /**
-     * Constructor.
-     */
-    public DisplayNameBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public DisplayName buildObject() {
+    @Override
+    @Nonnull public DisplayName buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, DisplayName.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public DisplayName buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public DisplayName buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new DisplayNameImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintBuilder.java
index 5cf880727..342dfb856 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/DomainHintBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.DomainHint;
@@ -26,21 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.DomainHint;
  */
 public class DomainHintBuilder extends AbstractSAMLObjectBuilder<DomainHint> {
 
-    /**
-     * Constructor.
-     */
-    public DomainHintBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public DomainHint buildObject() {
+    @Override
+    @Nonnull public DomainHint buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, DomainHint.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public DomainHint buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public DomainHint buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new DomainHintImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintBuilder.java
index 66c73a5b0..63e38f6d3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/GeolocationHintBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.GeolocationHint;
@@ -26,22 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.GeolocationHint;
  */
 public class GeolocationHintBuilder extends AbstractSAMLObjectBuilder<GeolocationHint> {
 
-    /**
-     * Constructor.
-     */
-    public GeolocationHintBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public GeolocationHint buildObject() {
+    @Override
+    @Nonnull public GeolocationHint buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, GeolocationHint.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public GeolocationHint buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public GeolocationHint buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new GeolocationHintImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintBuilder.java
index 7965d72c2..8b2f2661b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/IPHintBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.IPHint;
@@ -26,21 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.IPHint;
  */
 public class IPHintBuilder extends AbstractSAMLObjectBuilder<IPHint> {
 
-    /**
-     * Constructor.
-     */
-    public IPHintBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public IPHint buildObject() {
+    @Override
+    @Nonnull public IPHint buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, IPHint.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public IPHint buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public IPHint buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new IPHintImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLBuilder.java
index cd42188c5..62a5cc664 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/InformationURLBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.InformationURL;
@@ -25,21 +28,19 @@ import org.opensaml.saml.ext.saml2mdui.InformationURL;
  * Builder of {@link InformationURL} objects.
  */
 public class InformationURLBuilder extends AbstractSAMLObjectBuilder<InformationURL> {
-    /**
-     * Constructor.
-     */
-    public InformationURLBuilder() {
-
-    }
 
     /** {@inheritDoc} */
-    public InformationURL buildObject() {
+    @Override
+    @Nonnull public InformationURL buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, InformationURL.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public InformationURL buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public InformationURL buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new InformationURLImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsBuilder.java
index e003c0d35..eb583bc47 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/KeywordsBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.Keywords;
@@ -25,21 +28,19 @@ import org.opensaml.saml.ext.saml2mdui.Keywords;
  * Builder of {@link Keywords} objects.
  */
 public class KeywordsBuilder extends AbstractSAMLObjectBuilder<Keywords> {
-    /**
-     * Constructor.
-     */
-    public KeywordsBuilder() {
-
-    }
 
     /** {@inheritDoc} */
-    public Keywords buildObject() {
+    @Override
+    @Nonnull public Keywords buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, Keywords.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Keywords buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Keywords buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new KeywordsImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoBuilder.java
index c11cd6e9c..ed693f684 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/LogoBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.Logo;
@@ -26,21 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.Logo;
  */
 public class LogoBuilder extends AbstractSAMLObjectBuilder<Logo> {
 
-    /**
-     * Constructor.
-     */
-    public LogoBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Logo buildObject() {
+    @Override
+    @Nonnull public Logo buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, Logo.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Logo buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Logo buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new LogoImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLBuilder.java
index a346f0c9a..d5dbd5849 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/PrivacyStatementURLBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.PrivacyStatementURL;
@@ -26,22 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.PrivacyStatementURL;
  */
 public class PrivacyStatementURLBuilder extends AbstractSAMLObjectBuilder<PrivacyStatementURL> {
 
-    /**
-     * Constructor.
-     */
-    public PrivacyStatementURLBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public PrivacyStatementURL buildObject() {
+    @Override
+    @Nonnull public PrivacyStatementURL buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, PrivacyStatementURL.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public PrivacyStatementURL buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public PrivacyStatementURL buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new PrivacyStatementURLImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoBuilder.java
index 23ca6dd92..51da827df 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/saml2mdui/impl/UIInfoBuilder.java
@@ -17,6 +17,9 @@
 
 package org.opensaml.saml.ext.saml2mdui.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.saml2mdui.UIInfo;
@@ -26,21 +29,18 @@ import org.opensaml.saml.ext.saml2mdui.UIInfo;
  */
 public class UIInfoBuilder extends AbstractSAMLObjectBuilder<UIInfo> {
 
-    /**
-     * Constructor.
-     */
-    public UIInfoBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public UIInfo buildObject() {
+    @Override
+    @Nonnull public UIInfo buildObject() {
         return buildObject(SAMLConstants.SAML20MDUI_NS, UIInfo.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MDUI_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public UIInfo buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public UIInfo buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new UIInfoImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeBuilder.java
index 379c1d937..9c4952f2a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/EncTypeBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.ext.samlec.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.samlec.EncType;
 
-
 /**
  * A Builder for {@link EncType} objects.
  */
 public class EncTypeBuilder extends AbstractSAMLObjectBuilder<EncType> {
 
-    /**
-     * Constructor.
-     */
-    public EncTypeBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public EncType buildObject() {
+    @Override
+    @Nonnull public EncType buildObject() {
         return buildObject(SAMLConstants.SAMLEC_GSS_NS, EncType.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAMLEC_GSS_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public EncType buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public EncType buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EncTypeImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyBuilder.java
index a1edd7307..38c5ce835 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/GeneratedKeyBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.ext.samlec.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.samlec.GeneratedKey;
 
-
-
 /**
  * A Builder for {@link GeneratedKey} objects.
  */
 public class GeneratedKeyBuilder extends AbstractSAMLObjectBuilder<GeneratedKey> {
 
-    /**
-     * Constructor.
-     */
-    public GeneratedKeyBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public GeneratedKey buildObject() {
+    @Override
+    @Nonnull public GeneratedKey buildObject() {
         return buildObject(SAMLConstants.SAMLEC_GSS_NS, GeneratedKey.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAMLEC_GSS_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public GeneratedKey buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public GeneratedKey buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new GeneratedKeyImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyBuilder.java
index b38d4aef7..26fcf9b0d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlec/impl/SessionKeyBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.ext.samlec.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.samlec.SessionKey;
@@ -31,20 +34,18 @@ import org.opensaml.saml.ext.samlec.SessionKey;
  */
 public class SessionKeyBuilder extends AbstractSAMLObjectBuilder<SessionKey> {
 
-    /**
-     * Constructor.
-     */
-    public SessionKeyBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public SessionKey buildObject() {
+    @Override
+    @Nonnull public SessionKey buildObject() {
         return buildObject(SAMLConstants.SAMLEC_GSS_NS, SessionKey.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAMLEC_GSS_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SessionKey buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public SessionKey buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SessionKeyImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToBuilder.java
index 0a6e479d6..a7aed0239 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/ext/samlpthrpty/impl/RespondToBuilder.java
@@ -17,23 +17,30 @@
 
 package org.opensaml.saml.ext.samlpthrpty.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.ext.samlpthrpty.RespondTo;
 
 /**
- * Builder of {@link RespondToImpl} objects.
+ * Builder of {@link RespondTo} objects.
  */
 public class RespondToBuilder extends AbstractSAMLObjectBuilder<RespondTo> {
 
     /** {@inheritDoc} */
-    public RespondTo buildObject() {
+    @Override
+    @Nonnull public RespondTo buildObject() {
         return buildObject(SAMLConstants.SAML20PTHRPTY_NS, RespondTo.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20PTHRPTY_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RespondTo buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public RespondTo buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RespondToImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ActionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ActionBuilder.java
index cb6106332..930c6030f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ActionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ActionBuilder.java
@@ -17,31 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Action;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.ActionImpl} objects.
+ * Builder of {@link Action} objects.
  */
 public class ActionBuilder extends AbstractSAMLObjectBuilder<Action> {
 
-    /**
-     * Constructor.
-     */
-    public ActionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
     @Override
-    public Action buildObject() {
+    @Nonnull public Action buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, Action.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
     @Override
-    public Action buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Nonnull public Action buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ActionImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AdviceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AdviceBuilder.java
index d06bd8dc9..8f53345b8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AdviceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AdviceBuilder.java
@@ -17,31 +17,27 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Advice;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AdviceImpl} objects.
+ * Builder of {@link Advice} objects.
  */
 public class AdviceBuilder extends AbstractSAMLObjectBuilder<Advice> {
-
-    /**
-     * Constructor.
-     */
-    public AdviceBuilder() {
-
-    }
     
     /** {@inheritDoc} */
-    @Override
-    public Advice buildObject() {
+    @Nonnull public Advice buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, Advice.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    @Override
-    public Advice buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Nonnull public Advice buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AdviceImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionArtifactBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionArtifactBuilder.java
index e3f1aecfc..59d6ab3c6 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionArtifactBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionArtifactBuilder.java
@@ -17,33 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AssertionArtifact;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AssertionArtifactImpl} objects.
+ * Builder of {@link AssertionArtifact} objects.
  */
 public class AssertionArtifactBuilder extends AbstractSAMLObjectBuilder<AssertionArtifact> {
 
-    /**
-     * Constructor.
-     */
-    public AssertionArtifactBuilder() {
-
-    }
-
     /** {@inheritDoc} */
     @Override
-    public AssertionArtifact buildObject() {
+    @Nonnull public AssertionArtifact buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, AssertionArtifact.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
     @Override
-    public AssertionArtifact buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Nonnull public AssertionArtifact buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AssertionArtifactImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionBuilder.java
index d8797b479..20026fd78 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionBuilder.java
@@ -17,32 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Assertion;
 
 /** 
- * Builder of {@link AssertionImpl} objects. 
+ * Builder of {@link Assertion} objects. 
  */
 public class AssertionBuilder extends AbstractSAMLObjectBuilder<Assertion> {
 
-    /**
-     * Constructor.
-     */
-    public AssertionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
     @Override
-    public AssertionImpl buildObject() {
+    @Nonnull public AssertionImpl buildObject() {
         return new AssertionImpl(SAMLConstants.SAML1_NS, Assertion.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
     @Override
-    public AssertionImpl buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Nonnull public AssertionImpl buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AssertionImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionIDReferenceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionIDReferenceBuilder.java
index 0409ae250..8fde691cf 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionIDReferenceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AssertionIDReferenceBuilder.java
@@ -17,33 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AssertionIDReference;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AssertionIDReferenceImpl} objects.
+ * Builder of {@link AssertionIDReference} objects.
  */
 public class AssertionIDReferenceBuilder extends AbstractSAMLObjectBuilder<AssertionIDReference> {
 
-    /**
-     * Constructor.
-     */
-    public AssertionIDReferenceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
     @Override
-    public AssertionIDReference buildObject() {
+    @Nonnull public AssertionIDReference buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, AssertionIDReference.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
     @Override
-    public AssertionIDReference buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Nonnull public AssertionIDReference buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AssertionIDReferenceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeBuilder.java
index c38dbad82..6e312e06d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeBuilder.java
@@ -17,29 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Attribute;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AttributeImpl} objects.
+ * Builder of {@link Attribute} objects.
  */
 public class AttributeBuilder extends AbstractSAMLObjectBuilder<Attribute> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Attribute buildObject() {
+    @Override
+    @Nonnull public Attribute buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, Attribute.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Attribute buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Attribute buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeDesignatorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeDesignatorBuilder.java
index b9d484c9d..5e67acdb8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeDesignatorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeDesignatorBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AttributeDesignator;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AttributeDesignatorImpl} objects.
+ * Builder of {@link AttributeDesignator} objects.
  */
 public class AttributeDesignatorBuilder extends AbstractSAMLObjectBuilder<AttributeDesignator> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeDesignatorBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public AttributeDesignator buildObject() {
+    @Override
+    @Nonnull public AttributeDesignator buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, AttributeDesignator.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeDesignator buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeDesignator buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AttributeDesignatorImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeQueryBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeQueryBuilder.java
index 17c448cd3..9f6ac721a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeQueryBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeQueryBuilder.java
@@ -17,30 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AttributeQuery;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AttributeQueryImpl} objects.
+ * Builder of {@link AttributeQuery} objects.
  */
 public class AttributeQueryBuilder extends AbstractSAMLObjectBuilder<AttributeQuery> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeQueryBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeQuery buildObject() {
+    @Override
+    @Nonnull public AttributeQuery buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, AttributeQuery.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeQuery buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeQuery buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeQueryImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeStatementBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeStatementBuilder.java
index cae2be9e3..59b0d27b0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeStatementBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeStatementBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AttributeStatement;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AttributeStatementImpl} objects.
+ * Builder of {@link AttributeStatement} objects.
  */
 public class AttributeStatementBuilder extends AbstractSAMLObjectBuilder<AttributeStatement> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeStatementBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeStatement buildObject() {
+    @Override
+    @Nonnull public AttributeStatement buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, AttributeStatement.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeStatement buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeStatement buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeStatementImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeUnmarshaller.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeUnmarshaller.java
index 6c32f27a8..349ccec2e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeUnmarshaller.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeUnmarshaller.java
@@ -25,7 +25,7 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Attribute;
 
 /**
- * A thread-safe Unmarshaller for {@link org.opensaml.saml.saml1.core.impl.AttributeImpl} objects.
+ * A thread-safe Unmarshaller for {@link org.opensaml.saml.saml1.core.impl.Attribute} objects.
  */
 public class AttributeUnmarshaller extends AttributeDesignatorUnmarshaller {
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeValueBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeValueBuilder.java
index 3c1b3a256..0e73236df 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeValueBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AttributeValueBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AttributeValue;
@@ -31,14 +34,16 @@ import org.opensaml.saml.saml1.core.AttributeValue;
 public class AttributeValueBuilder extends AbstractSAMLObjectBuilder<AttributeValue> {
 
     /** {@inheritDoc} */
-    public AttributeValue buildObject() {
+    @Override
+    @Nonnull public AttributeValue buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AttributeValue.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeValue buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeValue buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeValueImpl(namespaceURI, localName, namespacePrefix);
     }
     
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceBuilder.java
index cfef450fb..56df594d8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceBuilder.java
@@ -17,29 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Audience;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AudienceImpl} objects.
+ * Builder of {@link Audience} objects.
  */
 public class AudienceBuilder extends AbstractSAMLObjectBuilder<Audience> {
 
-    /**
-     * Constructor.
-     */
-    public AudienceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Audience buildObject() {
+    @Override
+    @Nonnull public Audience buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, Audience.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Audience buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Audience buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AudienceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceRestrictionConditionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceRestrictionConditionBuilder.java
index 7a65110d6..2e977334d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceRestrictionConditionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AudienceRestrictionConditionBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AudienceRestrictionCondition;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AudienceRestrictionConditionImpl} objects.
+ * Builder of {@link AudienceRestrictionCondition} objects.
  */
 public class AudienceRestrictionConditionBuilder extends AbstractSAMLObjectBuilder<AudienceRestrictionCondition> {
 
-    /**
-     * Constructor.
-     */
-    public AudienceRestrictionConditionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AudienceRestrictionCondition buildObject() {
+    @Override
+    @Nonnull public AudienceRestrictionCondition buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, AudienceRestrictionCondition.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AudienceRestrictionCondition buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AudienceRestrictionCondition buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AudienceRestrictionConditionImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationQueryBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationQueryBuilder.java
index eac6ca07a..18b838039 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationQueryBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationQueryBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AuthenticationQuery;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AuthenticationQueryImpl} objects.
+ * Builder of {@link AuthenticationQuery} objects.
  */
 public class AuthenticationQueryBuilder extends AbstractSAMLObjectBuilder<AuthenticationQuery> {
 
-    /**
-     * Constructor.
-     */
-    public AuthenticationQueryBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthenticationQuery buildObject() {
+    @Override
+    @Nonnull public AuthenticationQuery buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, AuthenticationQuery.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthenticationQuery buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthenticationQuery buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthenticationQueryImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationStatementBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationStatementBuilder.java
index 75ec32151..76480b41f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationStatementBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthenticationStatementBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AuthenticationStatement;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AuthenticationStatementImpl} objects.
+ * Builder of {@link AuthenticationStatement} objects.
  */
 public class AuthenticationStatementBuilder extends AbstractSAMLObjectBuilder<AuthenticationStatement> {
 
-    /**
-     * Constructor.
-     */
-    public AuthenticationStatementBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthenticationStatement buildObject() {
+    @Override
+    @Nonnull public AuthenticationStatement buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, AuthenticationStatement.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthenticationStatement buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthenticationStatement buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthenticationStatementImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorityBindingBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorityBindingBuilder.java
index 304553f8e..834e4826f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorityBindingBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorityBindingBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AuthorityBinding;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AuthorityBindingImpl} objects.
+ * Builder of {@link AuthorityBinding} objects.
  */
 public class AuthorityBindingBuilder extends AbstractSAMLObjectBuilder<AuthorityBinding> {
 
-    /**
-     * Constructor.
-     */
-    public AuthorityBindingBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthorityBinding buildObject() {
+    @Override
+    @Nonnull public AuthorityBinding buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, AuthorityBinding.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthorityBinding buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthorityBinding buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthorityBindingImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionQueryBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionQueryBuilder.java
index 0832f6f26..f28414e02 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionQueryBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionQueryBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AuthorizationDecisionQuery;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AuthorizationDecisionQueryImpl} objects.
+ * Builder of {@link AuthorizationDecisionQuery} objects.
  */
 public class AuthorizationDecisionQueryBuilder extends AbstractSAMLObjectBuilder<AuthorizationDecisionQuery> {
 
-    /**
-     * Constructor.
-     */
-    public AuthorizationDecisionQueryBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthorizationDecisionQuery buildObject() {
+    @Override
+    @Nonnull public AuthorizationDecisionQuery buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, AuthorizationDecisionQuery.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthorizationDecisionQuery buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthorizationDecisionQuery buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthorizationDecisionQueryImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementBuilder.java
index 717936635..808e44bce 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.AuthorizationDecisionStatement;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.AuthorizationDecisionStatementImpl} objects.
+ * Builder of {@link AuthorizationDecisionStatement} objects.
  */
 public class AuthorizationDecisionStatementBuilder extends AbstractSAMLObjectBuilder<AuthorizationDecisionStatement> {
 
-    /**
-     * Constructor.
-     */
-    public AuthorizationDecisionStatementBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthorizationDecisionStatement buildObject() {
+    @Override
+    @Nonnull public AuthorizationDecisionStatement buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, AuthorizationDecisionStatement.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthorizationDecisionStatement buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthorizationDecisionStatement buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthorizationDecisionStatementImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementUnmarshaller.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementUnmarshaller.java
index 651e376f8..33cc67e8d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementUnmarshaller.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/AuthorizationDecisionStatementUnmarshaller.java
@@ -26,7 +26,7 @@ import org.opensaml.saml.saml1.core.Evidence;
 import org.w3c.dom.Attr;
 
 /**
- * A thread-safe Unmarshaller for {@link org.opensaml.saml.saml1.core.impl.AuthorizationDecisionStatementImpl} objects.
+ * A thread-safe Unmarshaller for {@link org.opensaml.saml.saml1.core.impl.AuthorizationDecisionStatement} objects.
  */
 public class AuthorizationDecisionStatementUnmarshaller extends SubjectStatementUnmarshaller {
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConditionsBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConditionsBuilder.java
index f51667c31..3473231b3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConditionsBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConditionsBuilder.java
@@ -17,29 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Conditions;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.ConditionsImpl} objects.
+ * Builder of {@link Conditions} objects.
  */
 public class ConditionsBuilder extends AbstractSAMLObjectBuilder<Conditions> {
 
-    /**
-     * Constructor.
-     */
-    public ConditionsBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Conditions buildObject() {
+    @Override
+    @Nonnull public Conditions buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, Conditions.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Conditions buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Conditions buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ConditionsImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConfirmationMethodBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConfirmationMethodBuilder.java
index 1a0382dd3..4cbcf6116 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConfirmationMethodBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ConfirmationMethodBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.ConfirmationMethod;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.ConfirmationMethodImpl} objects.
+ * Builder of {@link ConfirmationMethod} objects.
  */
 public class ConfirmationMethodBuilder extends AbstractSAMLObjectBuilder<ConfirmationMethod> {
 
-    /**
-     * Constructor.
-     */
-    public ConfirmationMethodBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ConfirmationMethod buildObject() {
+    @Override
+    @Nonnull public ConfirmationMethod buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, ConfirmationMethod.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ConfirmationMethod buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ConfirmationMethod buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ConfirmationMethodImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/DoNotCacheConditionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/DoNotCacheConditionBuilder.java
index e56f51121..20ac78e0d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/DoNotCacheConditionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/DoNotCacheConditionBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.DoNotCacheCondition;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.DoNotCacheConditionImpl} objects.
+ * Builder of {@link DoNotCacheCondition} objects.
  */
 public class DoNotCacheConditionBuilder extends AbstractSAMLObjectBuilder<DoNotCacheCondition> {
 
-    /**
-     * Constructor.
-     */
-    public DoNotCacheConditionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public DoNotCacheCondition buildObject() {
+    @Override
+    @Nonnull public DoNotCacheCondition buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, DoNotCacheCondition.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public DoNotCacheCondition buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public DoNotCacheCondition buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new DoNotCacheConditionImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/EvidenceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/EvidenceBuilder.java
index b6f3ab6d8..52a339d82 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/EvidenceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/EvidenceBuilder.java
@@ -17,29 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Evidence;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.EvidenceImpl} objects.
+ * Builder of {@link Evidence} objects.
  */
 public class EvidenceBuilder extends AbstractSAMLObjectBuilder<Evidence> {
 
-    /**
-     * Constructor.
-     */
-    public EvidenceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Evidence buildObject() {
+    @Override
+    @Nonnull public Evidence buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, Evidence.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Evidence buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Evidence buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EvidenceImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/NameIdentifierBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/NameIdentifierBuilder.java
index 1c98102f2..7e2fc2984 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/NameIdentifierBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/NameIdentifierBuilder.java
@@ -17,30 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.NameIdentifier;
 
 /**
- * Builder of{@link org.opensaml.saml.saml1.core.impl.NameIdentifierImpl} objects.
+ * Builder of {@link NameIdentifier} objects.
  */
 public class NameIdentifierBuilder extends AbstractSAMLObjectBuilder<NameIdentifier> {
 
-    /**
-     * Constructor.
-     */
-    public NameIdentifierBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public NameIdentifier buildObject() {
+    @Override
+    @Nonnull public NameIdentifier buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, NameIdentifier.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NameIdentifier buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public NameIdentifier buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new NameIdentifierImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestBuilder.java
index ea2716952..b7a6f555a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RequestBuilder.java
@@ -17,27 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Request;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.RequestImpl} objects.
+ * Builder of {@link Request} objects.
  */
 public class RequestBuilder extends AbstractSAMLObjectBuilder<Request> {
 
-    /** Constructor. */
-    public RequestBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Request buildObject() {
+    @Override
+    @Nonnull public Request buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, Request.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Request buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Request buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RequestImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RespondWithBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RespondWithBuilder.java
index d077bda71..7e24b87a7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RespondWithBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/RespondWithBuilder.java
@@ -17,23 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.RespondWith;
 
 /**
- * Builder of {@link RespondWithImpl} objects.
+ * Builder of {@link RespondWith} objects.
  */
 public class RespondWithBuilder extends AbstractSAMLObjectBuilder<RespondWith> {
 
     /** {@inheritDoc} */
-    public RespondWith buildObject() {
+    @Override
+    @Nonnull public RespondWith buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, RespondWith.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RespondWith buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public RespondWith buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RespondWithImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseBuilder.java
index f0670491e..ace153a97 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/ResponseBuilder.java
@@ -17,22 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Response;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.ResponseImpl} objects.
+ * Builder of {@link Response} objects.
  */
 public class ResponseBuilder extends AbstractSAMLObjectBuilder<Response> {
 
     /** {@inheritDoc} */
-    public Response buildObject() {
+    @Override
+    @Nonnull public Response buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, Response.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Response buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Response buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ResponseImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusBuilder.java
index 3be0bd0b0..c2b5cf625 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusBuilder.java
@@ -17,29 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Status;
 
 /**
- * Builder of {@link StatusImpl} objects.
+ * Builder of {@link Status} objects.
  */
 public class StatusBuilder extends AbstractSAMLObjectBuilder<Status> {
 
-    /**
-     * Constructor.
-     */
-    public StatusBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Status buildObject() {
+    @Override
+    @Nonnull public Status buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, Status.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Status buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Status buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusCodeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusCodeBuilder.java
index 87c2c6d34..e45a5f420 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusCodeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusCodeBuilder.java
@@ -17,30 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.StatusCode;
 
 /**
- * Builder of {@link StatusCodeImpl} objects.
+ * Builder of {@link StatusCode} objects.
  */
 public class StatusCodeBuilder extends AbstractSAMLObjectBuilder<StatusCode> {
 
-    /**
-     * Constructor.
-     */
-    public StatusCodeBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public StatusCode buildObject() {
+    @Override
+    @Nonnull public StatusCode buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, StatusCode.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public StatusCode buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public StatusCode buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusCodeImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusDetailBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusDetailBuilder.java
index 7c28dabd5..20404846f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusDetailBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusDetailBuilder.java
@@ -17,26 +17,23 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.StatusDetail;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.StatusDetailImpl}.
+ * Builder of {@link StatusDetailImpl}.
  */
 public class StatusDetailBuilder extends AbstractSAMLObjectBuilder<StatusDetail> {
 
-    /**
-     * Constructor.
-     */
-    public StatusDetailBuilder() {
-
-    }
-
     /**
      * {@inheritDoc}
      */
-    public StatusDetail buildObject() {
+    @Override
+    @Nonnull public StatusDetail buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, StatusDetail.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
@@ -44,7 +41,10 @@ public class StatusDetailBuilder extends AbstractSAMLObjectBuilder<StatusDetail>
     /**
      * {@inheritDoc}
      */
-    public StatusDetail buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public StatusDetail buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusDetailImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusMessageBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusMessageBuilder.java
index 81a32448e..bb719f833 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusMessageBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/StatusMessageBuilder.java
@@ -17,30 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.StatusMessage;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.StatusMessageImpl} objects.
+ * Builder of {@link StatusMessage} objects.
  */
 public class StatusMessageBuilder extends AbstractSAMLObjectBuilder<StatusMessage> {
 
-    /**
-     * Constructor.
-     */
-    public StatusMessageBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public StatusMessage buildObject() {
+    @Override
+    @Nonnull public StatusMessage buildObject() {
         return buildObject(SAMLConstants.SAML10P_NS, StatusMessage.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public StatusMessage buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public StatusMessage buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusMessageImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectBuilder.java
index c3b3e2ba3..183710f58 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectBuilder.java
@@ -17,29 +17,29 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.Subject;
 
 /**
- * Builder of (@link org.opensaml.saml.saml1.core.impl.SubjectImpl} objects.
+ * Builder of (@link Subject} objects.
  */
 public class SubjectBuilder extends AbstractSAMLObjectBuilder<Subject> {
 
-    /**
-     * Constructor.
-     */
-    public SubjectBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Subject buildObject() {
+    @Override
+    @Nonnull public Subject buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, Subject.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Subject buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Subject buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SubjectImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationBuilder.java
index 07a64e628..9d1c09354 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.SubjectConfirmation;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.SubjectConfirmationImpl} objects.
+ * Builder of {@link SubjectConfirmation} objects.
  */
 public class SubjectConfirmationBuilder extends AbstractSAMLObjectBuilder<SubjectConfirmation> {
 
-    /**
-     * Constructor.
-     */
-    public SubjectConfirmationBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SubjectConfirmation buildObject() {
+    @Override
+    @Nonnull public SubjectConfirmation buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, SubjectConfirmation.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SubjectConfirmation buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SubjectConfirmation buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new SubjectConfirmationImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationDataBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationDataBuilder.java
index 9fdf12929..8491acf44 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationDataBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectConfirmationDataBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.SubjectConfirmationData;
@@ -31,14 +34,16 @@ import org.opensaml.saml.saml1.core.SubjectConfirmationData;
 public class SubjectConfirmationDataBuilder extends AbstractSAMLObjectBuilder<SubjectConfirmationData> {
 
     /** {@inheritDoc} */
-    public SubjectConfirmationData buildObject() {
+    @Override
+    @Nonnull public SubjectConfirmationData buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, SubjectConfirmationData.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SubjectConfirmationData buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SubjectConfirmationData buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new SubjectConfirmationDataImpl(namespaceURI, localName, namespacePrefix);
     }
     
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectLocalityBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectLocalityBuilder.java
index 4bef28fbe..17df0869b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectLocalityBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/core/impl/SubjectLocalityBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml1.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml1.core.SubjectLocality;
 
 /**
- * Builder of {@link org.opensaml.saml.saml1.core.impl.SubjectLocalityImpl} objects.
+ * Builder of {@link SubjectLocality} objects.
  */
 public class SubjectLocalityBuilder extends AbstractSAMLObjectBuilder<SubjectLocality> {
 
-    /**
-     * Constructor.
-     */
-    public SubjectLocalityBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SubjectLocality buildObject() {
+    @Override
+    @Nonnull public SubjectLocality buildObject() {
         return buildObject(SAMLConstants.SAML1_NS, SubjectLocality.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML1_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SubjectLocality buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SubjectLocality buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SubjectLocalityImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ActionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ActionBuilder.java
index 7f747da38..b7b58a186 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ActionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ActionBuilder.java
@@ -21,27 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Action;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.ActionImpl} objects.
+ * Builder for {@link Action} objects.
  */
 public class ActionBuilder extends AbstractSAMLObjectBuilder<Action> {
 
-    /** Constructor. */
-    public ActionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Action buildObject() {
+    @Override
+    @Nonnull public Action buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Action.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Action buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Action buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ActionImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AdviceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AdviceBuilder.java
index b721f25de..298a78b4e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AdviceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AdviceBuilder.java
@@ -21,26 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Advice;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AdviceImpl} objects.
+ * Builder for {@link Advice} objects.
  */
 public class AdviceBuilder extends AbstractSAMLObjectBuilder<Advice> {
 
-    /** Constructor. */
-    public AdviceBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public Advice buildObject() {
+    @Override
+    @Nonnull public Advice buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Advice.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Advice buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Advice buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AdviceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactBuilder.java
index 38b41b623..d07bb999c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactBuilder.java
@@ -21,28 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Artifact;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.ArtifactImpl} objects.
+ * A Builder for {@link Artifact} objects.
  */
 public class ArtifactBuilder extends AbstractSAMLObjectBuilder<Artifact> {
 
-    /**
-     * Constructor.
-     */
-    public ArtifactBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public Artifact buildObject() {
+    @Override
+    @Nonnull public Artifact buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, Artifact.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Artifact buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Artifact buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ArtifactImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResolveBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResolveBuilder.java
index ebee42869..949ff58f9 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResolveBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResolveBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.ArtifactResolve;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.ArtifactResolveImpl} objects.
+ * A Builder for {@link ArtifactResolve} objects.
  */
 public class ArtifactResolveBuilder extends AbstractSAMLObjectBuilder<ArtifactResolve> {
 
-    /**
-     * Constructor.
-     */
-    public ArtifactResolveBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ArtifactResolve buildObject() {
+    @Override
+    @Nonnull public ArtifactResolve buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, ArtifactResolve.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ArtifactResolve buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ArtifactResolve buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ArtifactResolveImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResponseBuilder.java
index 8ce6c7fe5..dfda29da2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ArtifactResponseBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.ArtifactResponse;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.ArtifactResponseImpl} objects.
+ * A Builder for {@link ArtifactResponse} objects.
  */
 public class ArtifactResponseBuilder extends AbstractSAMLObjectBuilder<ArtifactResponse> {
 
-    /**
-     * Constructor.
-     */
-    public ArtifactResponseBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ArtifactResponse buildObject() {
+    @Override
+    @Nonnull public ArtifactResponse buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, ArtifactResponse.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ArtifactResponse buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ArtifactResponse buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ArtifactResponseImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionBuilder.java
index d8de64eea..266db303c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionBuilder.java
@@ -21,27 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Assertion;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AssertionImpl} objects.
+ * Builder for {@link Assertion} objects.
  */
 public class AssertionBuilder extends AbstractSAMLObjectBuilder<Assertion> {
 
-    /** Constructor. */
-    public AssertionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Assertion buildObject() {
+    @Override
+    @Nonnull public Assertion buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Assertion.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Assertion buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Assertion buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AssertionImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRefBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRefBuilder.java
index 1706082b0..b6a355db7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRefBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRefBuilder.java
@@ -21,28 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AssertionIDRef;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AssertionIDRefImpl}.
+ * Builder for {@link AssertionIDRef}.
  */
 public class AssertionIDRefBuilder extends AbstractSAMLObjectBuilder<AssertionIDRef> {
 
-    /** Constructor. */
-    public AssertionIDRefBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AssertionIDRef buildObject() {
+    @Override
+    @Nonnull public AssertionIDRef buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AssertionIDRef.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AssertionIDRef buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AssertionIDRef buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AssertionIDRefImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRequestBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRequestBuilder.java
index 2738ace29..4fd13f101 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRequestBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionIDRequestBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AssertionIDRequest;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.AssertionIDRequestImpl}.
+ * A Builder for {@link AssertionIDRequest}.
  */
 public class AssertionIDRequestBuilder extends AbstractSAMLObjectBuilder<AssertionIDRequest> {
 
-    /**
-     * Constructor.
-     */
-    public AssertionIDRequestBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public AssertionIDRequest buildObject() {
+    @Override
+    @Nonnull public AssertionIDRequest buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, AssertionIDRequest.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AssertionIDRequest buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AssertionIDRequest buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AssertionIDRequestImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionURIRefBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionURIRefBuilder.java
index 681d530f7..d41ebb6ca 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionURIRefBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AssertionURIRefBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AssertionURIRef;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AssertionURIRefImpl} objects.
+ * Builder for {@link AssertionURIRef} objects.
  */
 public class AssertionURIRefBuilder extends AbstractSAMLObjectBuilder<AssertionURIRef> {
 
-    /** Constructor. */
-    public AssertionURIRefBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AssertionURIRef buildObject() {
+    @Override
+    @Nonnull public AssertionURIRef buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AssertionURIRef.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AssertionURIRef buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AssertionURIRef buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AssertionURIRefImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeBuilder.java
index d31f147c7..e4816a256 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeBuilder.java
@@ -17,29 +17,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Attribute;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AttributeImpl} objects.
+ * Builder for {@link Attribute} objects.
  */
 public class AttributeBuilder extends AbstractSAMLObjectBuilder<Attribute> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Attribute buildObject() {
+    @Override
+    @Nonnull public Attribute buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Attribute.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Attribute buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Attribute buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeQueryBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeQueryBuilder.java
index c11e708b0..ce09a4e55 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeQueryBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeQueryBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AttributeQuery;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.AttributeQueryImpl} objects.
+ * A Builder for {@link AttributeQuery} objects.
  */
 public class AttributeQueryBuilder extends AbstractSAMLObjectBuilder<AttributeQuery> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeQueryBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeQuery buildObject() {
+    @Override
+    @Nonnull public AttributeQuery buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, AttributeQuery.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeQuery buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeQuery buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeQueryImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeStatementBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeStatementBuilder.java
index 7b04bc38d..179f27dea 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeStatementBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeStatementBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AttributeStatement;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AttributeStatementImpl} objects.
+ * Builder for {@link AttributeStatement} objects.
  */
 public class AttributeStatementBuilder extends AbstractSAMLObjectBuilder<AttributeStatement> {
 
-    /** Constructor. */
-    public AttributeStatementBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeStatement buildObject() {
+    @Override
+    @Nonnull public AttributeStatement buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AttributeStatement.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeStatement buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeStatement buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeStatementImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeValueBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeValueBuilder.java
index 4d91e00d2..21c027392 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeValueBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AttributeValueBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AttributeValue;
@@ -31,14 +34,16 @@ import org.opensaml.saml.saml2.core.AttributeValue;
 public class AttributeValueBuilder extends AbstractSAMLObjectBuilder<AttributeValue> {
 
     /** {@inheritDoc} */
-    public AttributeValue buildObject() {
+    @Override
+    @Nonnull public AttributeValue buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AttributeValue.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeValue buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeValue buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeValueImpl(namespaceURI, localName, namespacePrefix);
     }
     
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceBuilder.java
index bfa1d7aaf..d41d1d1c9 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceBuilder.java
@@ -21,26 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Audience;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AudienceImpl} objects.
+ * Builder for {@link Audience} objects.
  */
 public class AudienceBuilder extends AbstractSAMLObjectBuilder<Audience> {
 
-    /** Construtor. */
-    public AudienceBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public Audience buildObject() {
+    @Override
+    @Nonnull public Audience buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Audience.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Audience buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Audience buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AudienceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceRestrictionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceRestrictionBuilder.java
index cd36a3a53..8c83125a4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceRestrictionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AudienceRestrictionBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AudienceRestriction;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AudienceRestrictionImpl} objects.
+ * Builder for {@link AudienceRestriction} objects.
  */
 public class AudienceRestrictionBuilder extends AbstractSAMLObjectBuilder<AudienceRestriction> {
 
-    /** Constructor. */
-    public AudienceRestrictionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AudienceRestriction buildObject() {
+    @Override
+    @Nonnull public AudienceRestriction buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AudienceRestriction.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AudienceRestriction buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AudienceRestriction buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AudienceRestrictionImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthenticatingAuthorityBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthenticatingAuthorityBuilder.java
index 8aba53f95..42509d15a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthenticatingAuthorityBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthenticatingAuthorityBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthenticatingAuthority;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AuthenticatingAuthorityImpl} objects.
+ * Builder for {@link AuthenticatingAuthority} objects.
  */
 public class AuthenticatingAuthorityBuilder extends AbstractSAMLObjectBuilder<AuthenticatingAuthority> {
 
-    /** Constructor. */
-    public AuthenticatingAuthorityBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthenticatingAuthority buildObject() {
+    @Override
+    @Nonnull public AuthenticatingAuthority buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AuthenticatingAuthority.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthenticatingAuthority buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthenticatingAuthority buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthenticatingAuthorityImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextBuilder.java
index f89ac90ff..3a8b4c2ce 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextBuilder.java
@@ -21,28 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnContext;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AuthnContextImpl} objects.
+ * Builder for {@link AuthnContext} objects.
  */
 public class AuthnContextBuilder extends AbstractSAMLObjectBuilder<AuthnContext> {
 
-    /** Constructor. */
-    public AuthnContextBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthnContext buildObject() {
+    @Override
+    @Nonnull public AuthnContext buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AuthnContext.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnContext buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnContext buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthnContextImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextClassRefBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextClassRefBuilder.java
index 14643a35d..aad98b921 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextClassRefBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextClassRefBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnContextClassRef;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AuthnContextClassRefImpl} objects.
+ * Builder for {@link AuthnContextClassRef} objects.
  */
 public class AuthnContextClassRefBuilder extends AbstractSAMLObjectBuilder<AuthnContextClassRef> {
 
-    /** Constructor. */
-    public AuthnContextClassRefBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthnContextClassRef buildObject() {
+    @Override
+    @Nonnull public AuthnContextClassRef buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AuthnContextClassRef.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnContextClassRef buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnContextClassRef buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthnContextClassRefImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclBuilder.java
index 104db7ac9..b859611b4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclBuilder.java
@@ -21,24 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnContextDecl;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AuthnContextDeclImpl} objects.
+ * Builder for {@link AuthnContextDecl} objects.
  */
 public class AuthnContextDeclBuilder extends AbstractSAMLObjectBuilder<AuthnContextDecl> {
 
     /** {@inheritDoc} */
-    public AuthnContextDecl buildObject() {
+    @Override
+    @Nonnull public AuthnContextDecl buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AuthnContextDecl.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnContextDecl buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnContextDecl buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthnContextDeclImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclRefBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclRefBuilder.java
index 1e80e470a..c39a0c68a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclRefBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnContextDeclRefBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnContextDeclRef;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AuthnContextDeclRefImpl} objects.
+ * Builder for {@link AuthnContextDeclRef} objects.
  */
 public class AuthnContextDeclRefBuilder extends AbstractSAMLObjectBuilder<AuthnContextDeclRef> {
 
-    /** Constructor. */
-    public AuthnContextDeclRefBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthnContextDeclRef buildObject() {
+    @Override
+    @Nonnull public AuthnContextDeclRef buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AuthnContextDeclRef.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnContextDeclRef buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnContextDeclRef buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthnContextDeclRefImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnQueryBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnQueryBuilder.java
index d76d89535..2a694a860 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnQueryBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnQueryBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnQuery;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.AuthnQueryImpl} objects.
+ * A Builder for {@link AuthnQuery} objects.
  */
 public class AuthnQueryBuilder extends AbstractSAMLObjectBuilder<AuthnQuery> {
 
-    /**
-     * Constructor.
-     */
-    public AuthnQueryBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthnQuery buildObject() {
+    @Override
+    @Nonnull public AuthnQuery buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, AuthnQuery.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnQuery buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnQuery buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthnQueryImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnRequestBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnRequestBuilder.java
index 60d533252..a78531485 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnRequestBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnRequestBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnRequest;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.AuthnRequestImpl} objects.
+ * A Builder for {@link AuthnRequest} objects.
  */
 public class AuthnRequestBuilder extends AbstractSAMLObjectBuilder<AuthnRequest> {
 
-    /**
-     * Constructor.
-     */
-    public AuthnRequestBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthnRequest buildObject() {
+    @Override
+    @Nonnull public AuthnRequest buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, AuthnRequest.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnRequest buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnRequest buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthnRequestImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnStatementBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnStatementBuilder.java
index 13bec6c36..5f54638e4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnStatementBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthnStatementBuilder.java
@@ -21,27 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthnStatement;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AuthnStatementImpl} objects.
+ * Builder for {@link AuthnStatement} objects.
  */
 public class AuthnStatementBuilder extends AbstractSAMLObjectBuilder<AuthnStatement> {
 
-    /** Constructor. */
-    public AuthnStatementBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public AuthnStatement buildObject() {
+    @Override
+    @Nonnull public AuthnStatement buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AuthnStatement.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnStatement buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnStatement buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthnStatementImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionQueryBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionQueryBuilder.java
index 381d5451f..4e4b768f7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionQueryBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionQueryBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthzDecisionQuery;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.AuthzDecisionQueryImpl} objects.
+ * A Builder for {@link AuthzDecisionQuery} objects.
  */
 public class AuthzDecisionQueryBuilder extends AbstractSAMLObjectBuilder<AuthzDecisionQuery> {
 
-    /**
-     * Constructor.
-     */
-    public AuthzDecisionQueryBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthzDecisionQuery buildObject() {
+    @Override
+    @Nonnull public AuthzDecisionQuery buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, AuthzDecisionQuery.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthzDecisionQuery buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthzDecisionQuery buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthzDecisionQueryImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionStatementBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionStatementBuilder.java
index dbac94d16..738497bc7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionStatementBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/AuthzDecisionStatementBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.AuthzDecisionStatement;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.AuthzDecisionStatementImpl} objects.
+ * Builder for {@link AuthzDecisionStatement} objects.
  */
 public class AuthzDecisionStatementBuilder extends AbstractSAMLObjectBuilder<AuthzDecisionStatement> {
 
-    /** Constructor. */
-    public AuthzDecisionStatementBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthzDecisionStatement buildObject() {
+    @Override
+    @Nonnull public AuthzDecisionStatement buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, AuthzDecisionStatement.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthzDecisionStatement buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthzDecisionStatement buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthzDecisionStatementImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ConditionsBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ConditionsBuilder.java
index 4d3a0629c..5d7d3a59b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ConditionsBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ConditionsBuilder.java
@@ -21,27 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Conditions;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.ConditionsImpl} objects.
+ * Builder for {@link Conditions} objects.
  */
 public class ConditionsBuilder extends AbstractSAMLObjectBuilder<Conditions> {
 
-    /** Constructor. */
-    public ConditionsBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Conditions buildObject() {
+    @Override
+    @Nonnull public Conditions buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Conditions.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Conditions buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Conditions buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ConditionsImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAssertionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAssertionBuilder.java
index 0e00e36cf..f7725c66c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAssertionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAssertionBuilder.java
@@ -17,32 +17,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.EncryptedAssertion;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.EncryptedAssertionImpl} objects.
+ * Builder for {@link EncryptedAssertion} objects.
  */
 public class EncryptedAssertionBuilder extends AbstractSAMLObjectBuilder<EncryptedAssertion> {
 
-    /**
-     * Constructor.
-     */
-    public EncryptedAssertionBuilder() {
-        super();
-    }
-
     /** {@inheritDoc} */
-    public EncryptedAssertion buildObject() {
+    @Override
+    @Nonnull public EncryptedAssertion buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, EncryptedAssertion.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public EncryptedAssertion buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public EncryptedAssertion buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EncryptedAssertionImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAttributeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAttributeBuilder.java
index a82d16acc..47dc6c096 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAttributeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedAttributeBuilder.java
@@ -17,32 +17,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.EncryptedAttribute;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.EncryptedAttributeImpl} objects.
+ * Builder for {@link EncryptedAttribute} objects.
  */
 public class EncryptedAttributeBuilder extends AbstractSAMLObjectBuilder<EncryptedAttribute> {
 
-    /**
-     * Constructor.
-     */
-    public EncryptedAttributeBuilder() {
-        super();
-    }
-
     /** {@inheritDoc} */
-    public EncryptedAttribute buildObject() {
+    @Override
+    @Nonnull public EncryptedAttribute buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, EncryptedAttribute.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public EncryptedAttribute buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public EncryptedAttribute buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EncryptedAttributeImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedIDBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedIDBuilder.java
index 482cf0381..3cddd8292 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedIDBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EncryptedIDBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.EncryptedID;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.EncryptedIDImpl} objects.
+ * Builder for {@link EncryptedID} objects.
  */
 public class EncryptedIDBuilder extends AbstractSAMLObjectBuilder<EncryptedID> {
 
-    /**
-     * Constructor.
-     */
-    public EncryptedIDBuilder() {
-        super();
-    }
-
     /** {@inheritDoc} */
-    public EncryptedID buildObject() {
+    @Override
+    @Nonnull public EncryptedID buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, EncryptedID.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public EncryptedID buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public EncryptedID buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EncryptedIDImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EvidenceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EvidenceBuilder.java
index 133931142..5d3ffcc6a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EvidenceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/EvidenceBuilder.java
@@ -21,27 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Evidence;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.EvidenceImpl} objects.
+ * Builder for {@link Evidence} objects.
  */
 public class EvidenceBuilder extends AbstractSAMLObjectBuilder<Evidence> {
 
-    /** Constructor. */
-    public EvidenceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Evidence buildObject() {
+    @Override
+    @Nonnull public Evidence buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Evidence.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Evidence buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Evidence buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EvidenceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ExtensionsBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ExtensionsBuilder.java
index 4b8a52549..f53a5545c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ExtensionsBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ExtensionsBuilder.java
@@ -17,19 +17,23 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Extensions;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.ExtensionsImpl} objects.
+ * Builder of {@link Extensions} objects.
  */
 public class ExtensionsBuilder extends AbstractSAMLObjectBuilder<Extensions> {
 
     /**
      * {@inheritDoc}
      */
-    public Extensions buildObject() {
+    @Override
+    @Nonnull public Extensions buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, Extensions.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
@@ -37,7 +41,10 @@ public class ExtensionsBuilder extends AbstractSAMLObjectBuilder<Extensions> {
     /**
      * {@inheritDoc}
      */
-    public Extensions buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Extensions buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ExtensionsImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/GetCompleteBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/GetCompleteBuilder.java
index 985076bcd..4b291510d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/GetCompleteBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/GetCompleteBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.GetComplete;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.GetCompleteImpl}.
+ * Builder of {@link GetComplete}.
  */
 public class GetCompleteBuilder extends AbstractSAMLObjectBuilder<GetComplete> {
 
-    /**
-     * Constructor.
-     */
-    public GetCompleteBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public GetComplete buildObject() {
+    @Override
+    @Nonnull public GetComplete buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, GetComplete.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public GetComplete buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public GetComplete buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new GetCompleteImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPEntryBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPEntryBuilder.java
index 603e24199..5fb145fe0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPEntryBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPEntryBuilder.java
@@ -21,28 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.IDPEntry;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.IDPEntryImpl}.
+ * Builder of {@link IDPEntry}.
  */
 public class IDPEntryBuilder extends AbstractSAMLObjectBuilder<IDPEntry> {
 
-    /**
-     * Constructor.
-     */
-    public IDPEntryBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public IDPEntry buildObject() {
+    @Override
+    @Nonnull public IDPEntry buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, IDPEntry.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public IDPEntry buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public IDPEntry buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new IDPEntryImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPListBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPListBuilder.java
index 05d3c13cc..26825d3f8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPListBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IDPListBuilder.java
@@ -21,29 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.IDPList;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.IDPListImpl}.
+ * Builder for {@link IDPList}.
  */
 public class IDPListBuilder extends AbstractSAMLObjectBuilder<IDPList> {
 
-    /**
-     * Constructor.
-     */
-    public IDPListBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public IDPList buildObject() {
+    @Override
+    @Nonnull public IDPList buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, IDPList.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public IDPList buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public IDPList buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new IDPListImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IssuerBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IssuerBuilder.java
index d6eec4a18..c493c9258 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IssuerBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/IssuerBuilder.java
@@ -21,26 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Issuer;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.IssuerImpl} objects.
+ * Builder for {@link Issuer} objects.
  */
 public class IssuerBuilder extends AbstractSAMLObjectBuilder<Issuer> {
 
-    /** Constructor. */
-    public IssuerBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public Issuer buildObject() {
+    @Override
+    @Nonnull public Issuer buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Issuer.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Issuer buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Issuer buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new IssuerImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeBuilder.java
index 9060a97fb..44461a85b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/KeyInfoConfirmationDataTypeBuilder.java
@@ -21,28 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.KeyInfoConfirmationDataType;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.KeyInfoConfirmationDataTypeImpl} objects.
+ * Builder for {@link KeyInfoConfirmationDataType} objects.
  */
 public class KeyInfoConfirmationDataTypeBuilder extends AbstractSAMLObjectBuilder<KeyInfoConfirmationDataType> {
 
-    /** Constructor. */
-    public KeyInfoConfirmationDataTypeBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public KeyInfoConfirmationDataType buildObject() {
+    @Override
+    @Nonnull public KeyInfoConfirmationDataType buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, KeyInfoConfirmationDataType.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20_PREFIX, KeyInfoConfirmationDataType.TYPE_NAME);
     }
 
     /** {@inheritDoc} */
-    public KeyInfoConfirmationDataType buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public KeyInfoConfirmationDataType buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new KeyInfoConfirmationDataTypeImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutRequestBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutRequestBuilder.java
index 818714599..2708f275a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutRequestBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutRequestBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.LogoutRequest;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.LogoutRequestImpl}.
+ * Builder for {@link LogoutRequest}.
  */
 public class LogoutRequestBuilder extends AbstractSAMLObjectBuilder<LogoutRequest> {
 
-    /**
-     * Constructor.
-     */
-    public LogoutRequestBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public LogoutRequest buildObject() {
+    @Override
+    @Nonnull public LogoutRequest buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, LogoutRequest.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public LogoutRequest buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public LogoutRequest buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new LogoutRequestImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutResponseBuilder.java
index f7257b385..12a043848 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/LogoutResponseBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.LogoutResponse;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.LogoutResponseImpl}.
+ * Builder for {@link LogoutResponse}.
  */
 public class LogoutResponseBuilder extends AbstractSAMLObjectBuilder<LogoutResponse> {
 
-    /**
-     * Constructor.
-     */
-    public LogoutResponseBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public LogoutResponse buildObject() {
+    @Override
+    @Nonnull public LogoutResponse buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, LogoutResponse.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public LogoutResponse buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public LogoutResponse buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new LogoutResponseImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDRequestBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDRequestBuilder.java
index 42f59bf78..5496ead81 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDRequestBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDRequestBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.ManageNameIDRequest;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.ManageNameIDRequestImpl} objects.
+ * A Builder for {@link ManageNameIDRequest} objects.
  */
 public class ManageNameIDRequestBuilder extends AbstractSAMLObjectBuilder<ManageNameIDRequest> {
 
-    /**
-     * Constructor.
-     */
-    public ManageNameIDRequestBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ManageNameIDRequest buildObject() {
+    @Override
+    @Nonnull public ManageNameIDRequest buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, ManageNameIDRequest.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ManageNameIDRequest buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ManageNameIDRequest buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new ManageNameIDRequestImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseBuilder.java
index 837334e5d..8053aef38 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.ManageNameIDResponse;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.ManageNameIDResponseImpl} objects.
+ * A Builder for {@link ManageNameIDResponse} objects.
  */
 public class ManageNameIDResponseBuilder extends AbstractSAMLObjectBuilder<ManageNameIDResponse> {
 
-    /**
-     * Constructor.
-     */
-    public ManageNameIDResponseBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ManageNameIDResponse buildObject() {
+    @Override
+    @Nonnull public ManageNameIDResponse buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, ManageNameIDResponse.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ManageNameIDResponse buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ManageNameIDResponse buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new ManageNameIDResponseImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseImpl.java
index a78c9c44d..0797fb3bf 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ManageNameIDResponseImpl.java
@@ -24,7 +24,7 @@ package org.opensaml.saml.saml2.core.impl;
 import org.opensaml.saml.saml2.core.ManageNameIDResponse;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.ManageNameIDResponseImpl} objects.
+ * A Builder for {@link ManageNameIDResponse} objects.
  */
 public class ManageNameIDResponseImpl extends StatusResponseTypeImpl implements ManageNameIDResponse {
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDBuilder.java
index 131ecea08..b022ce742 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDBuilder.java
@@ -21,27 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.NameID;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.NameIDImpl} objects.
+ * Builder for {@link NameID} objects.
  */
 public class NameIDBuilder extends AbstractSAMLObjectBuilder<NameID> {
 
-    /** Constructor. */
-    public NameIDBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public NameID buildObject() {
+    @Override
+    @Nonnull public NameID buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, NameID.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NameID buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public NameID buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new NameIDImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingRequestBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingRequestBuilder.java
index 19f3876db..9c89f45ce 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingRequestBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingRequestBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.NameIDMappingRequest;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.NameIDMappingRequestImpl}.
+ * Builder for {@link NameIDMappingRequest}.
  */
 public class NameIDMappingRequestBuilder extends AbstractSAMLObjectBuilder<NameIDMappingRequest> {
 
-    /**
-     * Constructor.
-     */
-    public NameIDMappingRequestBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public NameIDMappingRequest buildObject() {
+    @Override
+    @Nonnull public NameIDMappingRequest buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, NameIDMappingRequest.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NameIDMappingRequest buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public NameIDMappingRequest buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new NameIDMappingRequestImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingResponseBuilder.java
index 72d262aad..ea277ed79 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDMappingResponseBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.NameIDMappingResponse;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.NameIDMappingResponseImpl}.
+ * Builder for {@link NameIDMappingResponse}.
  */
 public class NameIDMappingResponseBuilder extends AbstractSAMLObjectBuilder<NameIDMappingResponse> {
 
-    /**
-     * Constructor.
-     */
-    public NameIDMappingResponseBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public NameIDMappingResponse buildObject() {
+    @Override
+    @Nonnull public NameIDMappingResponse buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, NameIDMappingResponse.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NameIDMappingResponse buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public NameIDMappingResponse buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new NameIDMappingResponseImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDPolicyBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDPolicyBuilder.java
index f08b6a603..fcb128747 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDPolicyBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NameIDPolicyBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.NameIDPolicy;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.NameIDPolicyImpl}.
+ * Builder for {@link NameIDPolicy}.
  */
 public class NameIDPolicyBuilder extends AbstractSAMLObjectBuilder<NameIDPolicy> {
 
-    /**
-     * Constructor.
-     */
-    public NameIDPolicyBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public NameIDPolicy buildObject() {
+    @Override
+    @Nonnull public NameIDPolicy buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, NameIDPolicy.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NameIDPolicy buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public NameIDPolicy buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new NameIDPolicyImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewEncryptedIDBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewEncryptedIDBuilder.java
index 3211aa6fe..ad8559b07 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewEncryptedIDBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewEncryptedIDBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.NewEncryptedID;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.NewEncryptedIDImpl} objects.
+ * Builder for {@link NewEncryptedID} objects.
  */
 public class NewEncryptedIDBuilder extends AbstractSAMLObjectBuilder<NewEncryptedID> {
 
-    /**
-     * Constructor.
-     */
-    public NewEncryptedIDBuilder() {
-        super();
-    }
-
     /** {@inheritDoc} */
-    public NewEncryptedID buildObject() {
+    @Override
+    @Nonnull public NewEncryptedID buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, NewEncryptedID.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NewEncryptedID buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public NewEncryptedID buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new NewEncryptedIDImpl(namespaceURI, localName, namespacePrefix);
     }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewIDBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewIDBuilder.java
index 9049e277d..631be56ce 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewIDBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/NewIDBuilder.java
@@ -21,28 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.NewID;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.NewIDImpl} objects.
+ * A Builder for {@link NewID} objects.
  */
 public class NewIDBuilder extends AbstractSAMLObjectBuilder<NewID> {
 
-    /**
-     * Constructor.
-     */
-    public NewIDBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public NewID buildObject() {
+    @Override
+    @Nonnull public NewID buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, NewID.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NewID buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public NewID buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new NewIDImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/OneTimeUseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/OneTimeUseBuilder.java
index 9a198a3b2..262fb0e7c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/OneTimeUseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/OneTimeUseBuilder.java
@@ -21,27 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.OneTimeUse;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.OneTimeUseImpl} objects.
+ * Builder for {@link OneTimeUse} objects.
  */
 public class OneTimeUseBuilder extends AbstractSAMLObjectBuilder<OneTimeUse> {
 
-    /** Constructor. */
-    public OneTimeUseBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public OneTimeUse buildObject() {
+    @Override
+    @Nonnull public OneTimeUse buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, OneTimeUse.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public OneTimeUse buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public OneTimeUse buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new OneTimeUseImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ProxyRestrictionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ProxyRestrictionBuilder.java
index c26deaedf..6fd082ab4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ProxyRestrictionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ProxyRestrictionBuilder.java
@@ -21,28 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.ProxyRestriction;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.ProxyRestrictionImpl} objects.
+ * Builder for {@link ProxyRestriction} objects.
  */
 public class ProxyRestrictionBuilder extends AbstractSAMLObjectBuilder<ProxyRestriction> {
 
-    /** Constructor. */
-    public ProxyRestrictionBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public ProxyRestriction buildObject() {
+    @Override
+    @Nonnull public ProxyRestriction buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, ProxyRestriction.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ProxyRestriction buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ProxyRestriction buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ProxyRestrictionImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequestedAuthnContextBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequestedAuthnContextBuilder.java
index c07f4c84c..6b8fbfa49 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequestedAuthnContextBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequestedAuthnContextBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.RequestedAuthnContext;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.RequestedAuthnContextImpl} objects.
+ * A Builder for {@link RequestedAuthnContext} objects.
  */
 public class RequestedAuthnContextBuilder extends AbstractSAMLObjectBuilder<RequestedAuthnContext> {
 
-    /**
-     * Constructor.
-     */
-    public RequestedAuthnContextBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public RequestedAuthnContext buildObject() {
+    @Override
+    @Nonnull public RequestedAuthnContext buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, RequestedAuthnContext.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RequestedAuthnContext buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public RequestedAuthnContext buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new RequestedAuthnContextImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequesterIDBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequesterIDBuilder.java
index 2f375b4e2..57fd68701 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequesterIDBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/RequesterIDBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.RequesterID;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.RequesterIDImpl}.
+ * Builder for {@link RequesterID}.
  */
 public class RequesterIDBuilder extends AbstractSAMLObjectBuilder<RequesterID> {
 
-    /**
-     * Constructor.
-     */
-    public RequesterIDBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public RequesterID buildObject() {
+    @Override
+    @Nonnull public RequesterID buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, RequesterID.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RequesterID buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public RequesterID buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RequesterIDImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ResponseBuilder.java
index f260a2b64..9adeb1f34 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ResponseBuilder.java
@@ -21,29 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Response;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.ResponseImpl}.
+ * Builder for {@link Response}.
  */
 public class ResponseBuilder extends AbstractSAMLObjectBuilder<Response> {
 
-    /**
-     * Constructor.
-     */
-    public ResponseBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Response buildObject() {
+    @Override
+    @Nonnull public Response buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, Response.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Response buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Response buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ResponseImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ScopingBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ScopingBuilder.java
index 82033f09d..7d415191b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ScopingBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/ScopingBuilder.java
@@ -21,28 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Scoping;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.ScopingImpl}.
+ * Builder for {@link Scoping}.
  */
 public class ScopingBuilder extends AbstractSAMLObjectBuilder<Scoping> {
 
-    /**
-     * Constructor.
-     */
-    public ScopingBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public Scoping buildObject() {
+    @Override
+    @Nonnull public Scoping buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, Scoping.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Scoping buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Scoping buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ScopingImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SessionIndexBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SessionIndexBuilder.java
index 0937c1206..2ee1be1ae 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SessionIndexBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SessionIndexBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.SessionIndex;
 
 /**
- * A Builder for {@link org.opensaml.saml.saml2.core.impl.SessionIndexImpl} objects.
+ * A Builder for {@link SessionIndex} objects.
  */
 public class SessionIndexBuilder extends AbstractSAMLObjectBuilder<SessionIndex> {
 
-    /**
-     * Constructor.
-     */
-    public SessionIndexBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public SessionIndex buildObject() {
+    @Override
+    @Nonnull public SessionIndex buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, SessionIndex.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SessionIndex buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public SessionIndex buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SessionIndexImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusBuilder.java
index 23adf1acb..3619ebd99 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusBuilder.java
@@ -21,29 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Status;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.StatusImpl}.
+ * Builder for {@link StatusImpl}.
  */
 public class StatusBuilder extends AbstractSAMLObjectBuilder<Status> {
 
-    /**
-     * Constructor.
-     */
-    public StatusBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Status buildObject() {
+    @Override
+    @Nonnull public Status buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, Status.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Status buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Status buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusCodeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusCodeBuilder.java
index 2fd740836..f9afaa71f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusCodeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusCodeBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.StatusCode;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.StatusCodeImpl}.
+ * Builder for {@link StatusCode}.
  */
 public class StatusCodeBuilder extends AbstractSAMLObjectBuilder<StatusCode> {
 
-    /**
-     * Constructor.
-     * 
-     */
-    public StatusCodeBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public StatusCode buildObject() {
+    @Override
+    @Nonnull public StatusCode buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, StatusCode.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public StatusCode buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public StatusCode buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusCodeImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusDetailBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusDetailBuilder.java
index e2b205c4c..358888ece 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusDetailBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusDetailBuilder.java
@@ -17,26 +17,23 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.StatusDetail;
 
 /**
- * Builder of {@link StatusDetailImpl}.
+ * Builder of {@link StatusDetail}.
  */
 public class StatusDetailBuilder extends AbstractSAMLObjectBuilder<StatusDetail> {
 
-    /**
-     * Constructor.
-     */
-    public StatusDetailBuilder() {
-
-    }
-
     /**
      * {@inheritDoc}
      */
-    public StatusDetail buildObject() {
+    @Override
+    @Nonnull public StatusDetail buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, StatusDetail.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
@@ -44,7 +41,10 @@ public class StatusDetailBuilder extends AbstractSAMLObjectBuilder<StatusDetail>
     /**
      * {@inheritDoc}
      */
-    public StatusDetail buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public StatusDetail buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusDetailImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusMessageBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusMessageBuilder.java
index 224a57973..62999b697 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusMessageBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/StatusMessageBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.StatusMessage;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.core.impl.StatusMessageImpl}.
+ * Builder for {@link StatusMessage}.
  */
 public class StatusMessageBuilder extends AbstractSAMLObjectBuilder<StatusMessage> {
 
-    /**
-     * Constructor.
-     * 
-     */
-    public StatusMessageBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public StatusMessage buildObject() {
+    @Override
+    @Nonnull public StatusMessage buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, StatusMessage.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public StatusMessage buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public StatusMessage buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new StatusMessageImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectBuilder.java
index c7d346f1c..89f863a01 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectBuilder.java
@@ -21,27 +21,29 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Subject;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.SubjectImpl} objects.
+ * Builder for {@link Subject} objects.
  */
 public class SubjectBuilder extends AbstractSAMLObjectBuilder<Subject> {
 
-    /** Constructor. */
-    public SubjectBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Subject buildObject() {
+    @Override
+    @Nonnull public Subject buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, Subject.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Subject buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Subject buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SubjectImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationBuilder.java
index 1ba109678..d4b8a27f6 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.SubjectConfirmation;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.SubjectConfirmationImpl} objects.
+ * Builder for {@link SubjectConfirmation} objects.
  */
 public class SubjectConfirmationBuilder extends AbstractSAMLObjectBuilder<SubjectConfirmation> {
 
-    /** Constructor. */
-    public SubjectConfirmationBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SubjectConfirmation buildObject() {
+    @Override
+    @Nonnull public SubjectConfirmation buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, SubjectConfirmation.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SubjectConfirmation buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SubjectConfirmation buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new SubjectConfirmationImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationDataBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationDataBuilder.java
index a98738433..cd64a20d8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationDataBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectConfirmationDataBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.SubjectConfirmationData;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.SubjectConfirmationDataImpl} objects.
+ * Builder for {@link SubjectConfirmationData} objects.
  */
 public class SubjectConfirmationDataBuilder extends AbstractSAMLObjectBuilder<SubjectConfirmationData> {
 
-    /** Constructor. */
-    public SubjectConfirmationDataBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SubjectConfirmationData buildObject() {
+    @Override
+    @Nonnull public SubjectConfirmationData buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, SubjectConfirmationData.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SubjectConfirmationData buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SubjectConfirmationData buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new SubjectConfirmationDataImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectLocalityBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectLocalityBuilder.java
index a90d51495..92a478cb8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectLocalityBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/SubjectLocalityBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.SubjectLocality;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.core.impl.SubjectLocalityImpl} objects.
+ * Builder for {@link SubjectLocality} objects.
  */
 public class SubjectLocalityBuilder extends AbstractSAMLObjectBuilder<SubjectLocality> {
 
-    /** Constructor. */
-    public SubjectLocalityBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SubjectLocality buildObject() {
+    @Override
+    @Nonnull public SubjectLocality buildObject() {
         return buildObject(SAMLConstants.SAML20_NS, SubjectLocality.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SubjectLocality buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SubjectLocality buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SubjectLocalityImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/TerminateBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/TerminateBuilder.java
index 7024a5786..f57486bbe 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/TerminateBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/core/impl/TerminateBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.core.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.core.Terminate;
 
 /**
- * A Builder for {@link TerminateImpl} objects.
+ * A Builder for {@link Terminate} objects.
  */
 public class TerminateBuilder extends AbstractSAMLObjectBuilder<Terminate> {
 
-    /**
-     * Constructor.
-     */
-    public TerminateBuilder() {
-    }
-
     /** {@inheritDoc} */
-    public Terminate buildObject() {
+    @Override
+    @Nonnull public Terminate buildObject() {
         return buildObject(SAMLConstants.SAML20P_NS, Terminate.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20P_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Terminate buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Terminate buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new TerminateImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RelayStateBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RelayStateBuilder.java
index 7dc97f002..6424cee13 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RelayStateBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RelayStateBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml2.ecp.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.ecp.RelayState;
@@ -30,21 +33,18 @@ import org.opensaml.saml.saml2.ecp.RelayState;
  */
 public class RelayStateBuilder extends AbstractSAMLObjectBuilder<RelayState> {
 
-    /**
-     * Constructor.
-     */
-    public RelayStateBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public RelayState buildObject() {
+    @Override
+    @Nonnull public RelayState buildObject() {
         return buildObject(SAMLConstants.SAML20ECP_NS, RelayState.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20ECP_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RelayState buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public RelayState buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RelayStateImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestAuthenticatedBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestAuthenticatedBuilder.java
index d347cf56a..19e7053a3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestAuthenticatedBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestAuthenticatedBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml2.ecp.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.ecp.RequestAuthenticated;
@@ -31,22 +34,18 @@ import org.opensaml.saml.saml2.ecp.RequestAuthenticated;
  */
 public class RequestAuthenticatedBuilder extends AbstractSAMLObjectBuilder<RequestAuthenticated> {
 
-    /**
-     * Constructor.
-     */
-    public RequestAuthenticatedBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public RequestAuthenticated buildObject() {
+    @Override
+    @Nonnull public RequestAuthenticated buildObject() {
         return buildObject(SAMLConstants.SAML20ECP_NS, RequestAuthenticated.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20ECP_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RequestAuthenticated buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public RequestAuthenticated buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new RequestAuthenticatedImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestBuilder.java
index efb3adc2a..43c4bfb6c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/RequestBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml2.ecp.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.ecp.Request;
@@ -30,21 +33,18 @@ import org.opensaml.saml.saml2.ecp.Request;
  */
 public class RequestBuilder extends AbstractSAMLObjectBuilder<Request> {
 
-    /**
-     * Constructor.
-     */
-    public RequestBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Request buildObject() {
+    @Override
+    @Nonnull public Request buildObject() {
         return buildObject(SAMLConstants.SAML20ECP_NS, Request.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20ECP_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Request buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Request buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RequestImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/ResponseBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/ResponseBuilder.java
index 71f68140b..8886b35d8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/ResponseBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/ResponseBuilder.java
@@ -21,6 +21,9 @@
 
 package org.opensaml.saml.saml2.ecp.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.ecp.Response;
@@ -30,21 +33,18 @@ import org.opensaml.saml.saml2.ecp.Response;
  */
 public class ResponseBuilder extends AbstractSAMLObjectBuilder<Response> {
 
-    /**
-     * Constructor.
-     */
-    public ResponseBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Response buildObject() {
+    @Override
+    @Nonnull public Response buildObject() {
         return buildObject(SAMLConstants.SAML20ECP_NS, Response.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20ECP_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Response buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Response buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ResponseImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/SubjectConfirmationBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/SubjectConfirmationBuilder.java
index 52fddb226..ed5720c95 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/SubjectConfirmationBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/ecp/impl/SubjectConfirmationBuilder.java
@@ -21,32 +21,30 @@
 
 package org.opensaml.saml.saml2.ecp.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.ecp.SubjectConfirmation;
 
-
 /**
  * A Builder for {@link SubjectConfirmation} objects.
  */
 public class SubjectConfirmationBuilder extends AbstractSAMLObjectBuilder<SubjectConfirmation> {
 
-    /**
-     * Constructor.
-     */
-    public SubjectConfirmationBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SubjectConfirmation buildObject() {
+    @Override
+    @Nonnull public SubjectConfirmation buildObject() {
         return buildObject(SAMLConstants.SAML20ECP_NS, SubjectConfirmation.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20ECP_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SubjectConfirmation buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SubjectConfirmation buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new SubjectConfirmationImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AdditionalMetadataLocationBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AdditionalMetadataLocationBuilder.java
index f66fac59a..723558591 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AdditionalMetadataLocationBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AdditionalMetadataLocationBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AdditionalMetadataLocation;
 
 /**
- * A builder for {@link org.opensaml.saml.saml2.metadata.impl.AdditionalMetadataLocationImpl} objects.
+ * Builder for {@link AdditionalMetadataLocation} objects.
  */
 public class AdditionalMetadataLocationBuilder extends AbstractSAMLObjectBuilder<AdditionalMetadataLocation> {
 
-    /**
-     * Constructor.
-     */
-    public AdditionalMetadataLocationBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AdditionalMetadataLocation buildObject() {
+    @Override
+    @Nonnull public AdditionalMetadataLocation buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AdditionalMetadataLocation.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AdditionalMetadataLocation buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AdditionalMetadataLocation buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AdditionalMetadataLocationImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliateMemberBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliateMemberBuilder.java
index 5eaf79b09..2e0d35a63 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliateMemberBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliateMemberBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AffiliateMember;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AffiliateMemberImpl}s.
+ * Builder for {@link AffiliateMember}.
  */
 public class AffiliateMemberBuilder extends AbstractSAMLObjectBuilder<AffiliateMember> {
 
-    /**
-     * Constructor.
-     */
-    public AffiliateMemberBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AffiliateMember buildObject() {
+    @Override
+    @Nonnull public AffiliateMember buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AffiliateMember.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AffiliateMember buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AffiliateMember buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AffiliateMemberImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliationDescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliationDescriptorBuilder.java
index 5ebc58b92..87938aa7f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliationDescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AffiliationDescriptorBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AffiliationDescriptor;
 
 /**
- * A builder for {@link org.opensaml.saml.saml2.metadata.impl.AffiliationDescriptorImpl} objects.
+ * Builder for {@link AffiliationDescriptor} objects.
  */
 public class AffiliationDescriptorBuilder extends AbstractSAMLObjectBuilder<AffiliationDescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public AffiliationDescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AffiliationDescriptor buildObject() {
+    @Override
+    @Nonnull public AffiliationDescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AffiliationDescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AffiliationDescriptor buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AffiliationDescriptor buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AffiliationDescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ArtifactResolutionServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ArtifactResolutionServiceBuilder.java
index 585281409..9a70babcf 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ArtifactResolutionServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ArtifactResolutionServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.ArtifactResolutionService;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.ArtifactResolutionServiceImpl}.
+ * Builder for {@link ArtifactResolutionService}.
  */
 public class ArtifactResolutionServiceBuilder extends AbstractSAMLObjectBuilder<ArtifactResolutionService> {
 
-    /**
-     * Constructor.
-     */
-    public ArtifactResolutionServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ArtifactResolutionService buildObject() {
+    @Override
+    @Nonnull public ArtifactResolutionService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, ArtifactResolutionService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ArtifactResolutionService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ArtifactResolutionService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new ArtifactResolutionServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionConsumerServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionConsumerServiceBuilder.java
index eec537b03..767642f03 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionConsumerServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionConsumerServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AssertionConsumerService;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AssertionConsumerServiceImpl} objects.
+ * Builder for {@link AssertionConsumerService} objects.
  */
 public class AssertionConsumerServiceBuilder extends AbstractSAMLObjectBuilder<AssertionConsumerService> {
 
-    /**
-     * Constructor.
-     */
-    public AssertionConsumerServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AssertionConsumerService buildObject() {
+    @Override
+    @Nonnull public AssertionConsumerService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AssertionConsumerService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AssertionConsumerService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AssertionConsumerService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AssertionConsumerServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionIDRequestServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionIDRequestServiceBuilder.java
index f590b783f..8ee122103 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionIDRequestServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AssertionIDRequestServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AssertionIDRequestService;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AssertionIDRequestServiceImpl}.
+ * Builder for {@link AssertionIDRequestService}.
  */
 public class AssertionIDRequestServiceBuilder extends AbstractSAMLObjectBuilder<AssertionIDRequestService> {
 
-    /**
-     * Constructor.
-     */
-    public AssertionIDRequestServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AssertionIDRequestService buildObject() {
+    @Override
+    @Nonnull public AssertionIDRequestService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AssertionIDRequestService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AssertionIDRequestService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AssertionIDRequestService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AssertionIDRequestServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeAuthorityDescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeAuthorityDescriptorBuilder.java
index ec968c3d1..401959c96 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeAuthorityDescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeAuthorityDescriptorBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AttributeAuthorityDescriptor;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AttributeAuthorityDescriptorImpl}s.
+ * Builder for {@link AttributeAuthorityDescriptor}.
  */
 public class AttributeAuthorityDescriptorBuilder extends AbstractSAMLObjectBuilder<AttributeAuthorityDescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeAuthorityDescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeAuthorityDescriptor buildObject() {
+    @Override
+    @Nonnull public AttributeAuthorityDescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AttributeAuthorityDescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeAuthorityDescriptor buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeAuthorityDescriptor buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AttributeAuthorityDescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeConsumingServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeConsumingServiceBuilder.java
index 65ffca830..f7727899b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeConsumingServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeConsumingServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AttributeConsumingService;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.AttributeConsumingServiceImpl}.
+ * Builder for {@link AttributeConsumingService}.
  */
 public class AttributeConsumingServiceBuilder extends AbstractSAMLObjectBuilder<AttributeConsumingService> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeConsumingServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeConsumingService buildObject() {
+    @Override
+    @Nonnull public AttributeConsumingService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AttributeConsumingService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeConsumingService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeConsumingService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AttributeConsumingServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeProfileBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeProfileBuilder.java
index e9da530c7..78494803d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeProfileBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeProfileBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AttributeProfile;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AttributeProfileImpl}s.
+ * Builder for {@link AttributeProfile}.
  */
 public class AttributeProfileBuilder extends AbstractSAMLObjectBuilder<AttributeProfile> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeProfileBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeProfile buildObject() {
+    @Override
+    @Nonnull public AttributeProfile buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AttributeProfile.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeProfile buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeProfile buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeProfileImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeServiceBuilder.java
index cd4dbcfc1..3c28574ec 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AttributeServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AttributeService;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AttributeServiceImpl}.
+ * Builder for {@link AttributeService}.
  */
 public class AttributeServiceBuilder extends AbstractSAMLObjectBuilder<AttributeService> {
 
-    /**
-     * Constructor.
-     */
-    public AttributeServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AttributeService buildObject() {
+    @Override
+    @Nonnull public AttributeService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AttributeService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AttributeService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AttributeService buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AttributeServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnAuthorityDescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnAuthorityDescriptorBuilder.java
index 62a4e0d17..915206e6b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnAuthorityDescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnAuthorityDescriptorBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AuthnAuthorityDescriptor;
 
 /**
- * A builder for {@link org.opensaml.saml.saml2.metadata.impl.AuthnAuthorityDescriptorImpl} objects.
+ * Builder for {@link AuthnAuthorityDescriptor} objects.
  */
 public class AuthnAuthorityDescriptorBuilder extends AbstractSAMLObjectBuilder<AuthnAuthorityDescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public AuthnAuthorityDescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthnAuthorityDescriptor buildObject() {
+    @Override
+    @Nonnull public AuthnAuthorityDescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AuthnAuthorityDescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnAuthorityDescriptor buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnAuthorityDescriptor buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new AuthnAuthorityDescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnQueryServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnQueryServiceBuilder.java
index e8fe0ac72..59975b1ff 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnQueryServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthnQueryServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AuthnQueryService;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AuthnQueryServiceImpl}.
+ * Builder for {@link AuthnQueryService}.
  */
 public class AuthnQueryServiceBuilder extends AbstractSAMLObjectBuilder<AuthnQueryService> {
 
-    /**
-     * Constructor.
-     */
-    public AuthnQueryServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthnQueryService buildObject() {
+    @Override
+    @Nonnull public AuthnQueryService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AuthnQueryService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthnQueryService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthnQueryService buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthnQueryServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthzServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthzServiceBuilder.java
index f382c0db4..50ee2d086 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthzServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/AuthzServiceBuilder.java
@@ -17,30 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.AuthzService;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.AuthzServiceImpl}.
+ * Builder for {@link AuthzService}.
  */
 public class AuthzServiceBuilder extends AbstractSAMLObjectBuilder<AuthzService> {
 
-    /**
-     * Constructor.
-     */
-    public AuthzServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public AuthzService buildObject() {
+    @Override
+    @Nonnull public AuthzService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, AuthzService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public AuthzService buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public AuthzService buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new AuthzServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/CompanyBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/CompanyBuilder.java
index c4c33782e..1a42d438e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/CompanyBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/CompanyBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.Company;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.CompanyImpl}.
+ * Builder for {@link Company}.
  */
 public class CompanyBuilder extends AbstractSAMLObjectBuilder<Company> {
 
-    /**
-     * Constructor.
-     */
-    public CompanyBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Company buildObject() {
+    @Override
+    @Nonnull public Company buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, Company.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Company buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Company buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new CompanyImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ContactPersonBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ContactPersonBuilder.java
index 42a924ddd..78054539e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ContactPersonBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ContactPersonBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.ContactPerson;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.ContactPersonImpl}.
+ * Builder for {@link ContactPerson}.
  */
 public class ContactPersonBuilder extends AbstractSAMLObjectBuilder<ContactPerson> {
 
-    /**
-     * Constructor.
-     */
-    public ContactPersonBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ContactPerson buildObject() {
+    @Override
+    @Nonnull public ContactPerson buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, ContactPerson.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ContactPerson buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public ContactPerson buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ContactPersonImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EmailAddressBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EmailAddressBuilder.java
index 5ee60f163..e864cadc6 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EmailAddressBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EmailAddressBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.EmailAddress;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.EmailAddressImpl}.
+ * Builder for {@link EmailAddress}.
  */
 public class EmailAddressBuilder extends AbstractSAMLObjectBuilder<EmailAddress> {
 
-    /**
-     * Constructor.
-     */
-    public EmailAddressBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public EmailAddress buildObject() {
+    @Override
+    @Nonnull public EmailAddress buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, EmailAddress.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public EmailAddress buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public EmailAddress buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EmailAddressImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EncryptionMethodBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EncryptionMethodBuilder.java
index 6b88c3ac4..9d880ae69 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EncryptionMethodBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EncryptionMethodBuilder.java
@@ -17,34 +17,32 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.SAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.EncryptionMethod;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.EncryptionMethod}.
+ * Builder of {@link EncryptionMethod}.
  */
 public class EncryptionMethodBuilder extends AbstractSAMLObjectBuilder<EncryptionMethod> 
     implements SAMLObjectBuilder<EncryptionMethod> {
 
-    /**
-     * Constructor.
-     *
-     */
-    public EncryptionMethodBuilder() {
-    }
-
-    /** {@inheritDoc} */
-    public EncryptionMethod buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
-        return new EncryptionMethodImpl(namespaceURI, localName, namespacePrefix);
-    }
-
     /** {@inheritDoc} */
-    public EncryptionMethod buildObject() {
+    @Override
+    @Nonnull public EncryptionMethod buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, EncryptionMethod.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20MD_PREFIX);
     }
+    
+    /** {@inheritDoc} */
+    @Override
+    @Nonnull public EncryptionMethod buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
+        return new EncryptionMethodImpl(namespaceURI, localName, namespacePrefix);
+    }
 
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntitiesDescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntitiesDescriptorBuilder.java
index 13b00d91e..8b039c3a0 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntitiesDescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntitiesDescriptorBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
 
 /**
- * A builder of {@link org.opensaml.saml.saml2.metadata.impl.EntitiesDescriptorImpl} objects.
+ * A builder of {@link EntitiesDescriptor} objects.
  */
 public class EntitiesDescriptorBuilder extends AbstractSAMLObjectBuilder<EntitiesDescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public EntitiesDescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public EntitiesDescriptor buildObject() {
+    @Override
+    @Nonnull public EntitiesDescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, EntitiesDescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public EntitiesDescriptor buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public EntitiesDescriptor buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EntitiesDescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntityDescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntityDescriptorBuilder.java
index 4288aded9..c021e925c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntityDescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/EntityDescriptorBuilder.java
@@ -17,31 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 
 /**
- * An Builder for EntityDescriptor elements.
+ * Builder for {@link EntityDescriptor}.
  */
 public class EntityDescriptorBuilder extends AbstractSAMLObjectBuilder<EntityDescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public EntityDescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public EntityDescriptor buildObject() {
+    @Override
+    @Nonnull public EntityDescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, EntityDescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public EntityDescriptor buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public EntityDescriptor buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new EntityDescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
-}
+    
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ExtensionsBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ExtensionsBuilder.java
index d650dfa2d..769ce5f2f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ExtensionsBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ExtensionsBuilder.java
@@ -17,19 +17,23 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.Extensions;
 
 /**
- * Builder of {@link ExtensionsImpl} objects.
+ * Builder of {@link Extensions} objects.
  */
 public class ExtensionsBuilder extends AbstractSAMLObjectBuilder<Extensions> {
 
     /**
      * {@inheritDoc}
      */
-    public Extensions buildObject() {
+    @Override
+    @Nonnull public Extensions buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, Extensions.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
@@ -37,7 +41,10 @@ public class ExtensionsBuilder extends AbstractSAMLObjectBuilder<Extensions> {
     /**
      * {@inheritDoc}
      */
-    public Extensions buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Extensions buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ExtensionsImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/GivenNameBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/GivenNameBuilder.java
index 8a61fddd9..a20a436db 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/GivenNameBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/GivenNameBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.GivenName;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.GivenNameImpl}.
+ * Builder for {@link GivenName}.
  */
 public class GivenNameBuilder extends AbstractSAMLObjectBuilder<GivenName> {
 
-    /**
-     * Constructor.
-     */
-    public GivenNameBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public GivenName buildObject() {
+    @Override
+    @Nonnull public GivenName buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, GivenName.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public GivenName buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public GivenName buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new GivenNameImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorBuilder.java
index 4f6e9dba1..c2ab104cc 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/IDPSSODescriptorBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.IDPSSODescriptor;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.IDPSSODescriptorImpl}.
+ * Builder for {@link IDPSSODescriptor}.
  */
 public class IDPSSODescriptorBuilder extends AbstractSAMLObjectBuilder<IDPSSODescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public IDPSSODescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public IDPSSODescriptor buildObject() {
+    @Override
+    @Nonnull public IDPSSODescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, IDPSSODescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public IDPSSODescriptor buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public IDPSSODescriptor buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new IDPSSODescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/KeyDescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/KeyDescriptorBuilder.java
index a46e6a0e8..3cdce2186 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/KeyDescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/KeyDescriptorBuilder.java
@@ -17,23 +17,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.KeyDescriptor;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.KeyDescriptorImpl} objects.
+ * Builder for {@link KeyDescriptor} objects.
  */
 public class KeyDescriptorBuilder extends AbstractSAMLObjectBuilder<KeyDescriptor> {
 
     /** {@inheritDoc} */
-    public KeyDescriptor buildObject() {
+    @Override
+    @Nonnull public KeyDescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, KeyDescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public KeyDescriptor buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public KeyDescriptor buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new KeyDescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ManageNameIDServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ManageNameIDServiceBuilder.java
index 4b1dbd098..446f4813e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ManageNameIDServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ManageNameIDServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.ManageNameIDService;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.ManageNameIDServiceImpl}.
+ * Builder for {@link ManageNameIDService}.
  */
 public class ManageNameIDServiceBuilder extends AbstractSAMLObjectBuilder<ManageNameIDService> {
 
-    /**
-     * Constructor.
-     */
-    public ManageNameIDServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ManageNameIDService buildObject() {
+    @Override
+    @Nonnull public ManageNameIDService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, ManageNameIDService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ManageNameIDService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ManageNameIDService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new ManageNameIDServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDFormatBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDFormatBuilder.java
index 55327015e..46d1b0e9e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDFormatBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDFormatBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.NameIDFormat;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.NameIDFormatImpl}.
+ * Builder for {@link NameIDFormat}.
  */
 public class NameIDFormatBuilder extends AbstractSAMLObjectBuilder<NameIDFormat> {
 
-    /**
-     * Constructor.
-     */
-    public NameIDFormatBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public NameIDFormat buildObject() {
+    @Override
+    @Nonnull public NameIDFormat buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, NameIDFormat.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NameIDFormat buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public NameIDFormat buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new NameIDFormatImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDMappingServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDMappingServiceBuilder.java
index d3a99fd65..fb2f6dd8a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDMappingServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/NameIDMappingServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.NameIDMappingService;
 
 /**
- * Builder of (@link org.opensaml.saml.saml2.metadata.impl.NameIDMappingServiceImpl}.
+ * Builder of (@link NameIDMappingService}.
  */
 public class NameIDMappingServiceBuilder extends AbstractSAMLObjectBuilder<NameIDMappingService> {
 
-    /**
-     * Constructor.
-     */
-    public NameIDMappingServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public NameIDMappingService buildObject() {
+    @Override
+    @Nonnull public NameIDMappingService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, NameIDMappingService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public NameIDMappingService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public NameIDMappingService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new NameIDMappingServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationBuilder.java
index b1932658f..18664dc01 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.Organization;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.OrganizationImpl}.
+ * Builder for {@link Organization}.
  */
 public class OrganizationBuilder extends AbstractSAMLObjectBuilder<Organization> {
 
-    /**
-     * Constructor.
-     */
-    public OrganizationBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public Organization buildObject() {
+    @Override
+    @Nonnull public Organization buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, Organization.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public Organization buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public Organization buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new OrganizationImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationDisplayNameBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationDisplayNameBuilder.java
index 62511aa77..ca15d9feb 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationDisplayNameBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationDisplayNameBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.OrganizationDisplayName;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.OrganizationDisplayNameImpl}.
+ * Builder for {@link OrganizationDisplayName}.
  */
 public class OrganizationDisplayNameBuilder extends AbstractSAMLObjectBuilder<OrganizationDisplayName> {
 
-    /**
-     * Constructor.
-     */
-    public OrganizationDisplayNameBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public OrganizationDisplayName buildObject() {
+    @Override
+    @Nonnull public OrganizationDisplayName buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, OrganizationDisplayName.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public OrganizationDisplayName buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public OrganizationDisplayName buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new OrganizationDisplayNameImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationNameBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationNameBuilder.java
index 0ee0f7863..9c2d6a15a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationNameBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationNameBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.OrganizationName;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.OrganizationNameImpl}.
+ * Builder for {@link OrganizationName}.
  */
 public class OrganizationNameBuilder extends AbstractSAMLObjectBuilder<OrganizationName> {
 
-    /**
-     * Constructor.
-     */
-    public OrganizationNameBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public OrganizationName buildObject() {
+    @Override
+    @Nonnull public OrganizationName buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, OrganizationName.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public OrganizationName buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public OrganizationName buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new OrganizationNameImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationURLBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationURLBuilder.java
index 354663cb8..c1ac731aa 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationURLBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/OrganizationURLBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.OrganizationURL;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.OrganizationURLImpl}.
+ * Builder for {@link OrganizationURL}.
  */
 public class OrganizationURLBuilder extends AbstractSAMLObjectBuilder<OrganizationURL> {
 
-    /**
-     * Constructor.
-     */
-    public OrganizationURLBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public OrganizationURL buildObject() {
+    @Override
+    @Nonnull public OrganizationURL buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, OrganizationURL.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public OrganizationURL buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public OrganizationURL buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new OrganizationURLImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/PDPDescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/PDPDescriptorBuilder.java
index 8f43f8916..6f267760b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/PDPDescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/PDPDescriptorBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.PDPDescriptor;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.PDPDescriptorImpl}.
+ * Builder for {@link PDPDescriptor}.
  */
 public class PDPDescriptorBuilder extends AbstractSAMLObjectBuilder<PDPDescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public PDPDescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public PDPDescriptor buildObject() {
+    @Override
+    @Nonnull public PDPDescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, PDPDescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public PDPDescriptor buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public PDPDescriptor buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new PDPDescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeBuilder.java
index 179c1d15d..d0850be1a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeBuilder.java
@@ -21,29 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.RequestedAttribute;
 
 /**
- * Builder for {@link org.opensaml.saml.saml2.metadata.impl.RequestedAttributeImpl}.
+ * Builder for {@link RequestedAttribute}.
  */
 public class RequestedAttributeBuilder extends AbstractSAMLObjectBuilder<RequestedAttribute> {
 
-    /** Constructor. */
-    public RequestedAttributeBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public RequestedAttribute buildObject() {
+    @Override
+    @Nonnull public RequestedAttribute buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, RequestedAttribute.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public RequestedAttribute buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public RequestedAttribute buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new RequestedAttributeImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SPSSODescriptorBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SPSSODescriptorBuilder.java
index ed6dc6cdd..6adc82293 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SPSSODescriptorBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SPSSODescriptorBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.SPSSODescriptorImpl}.
+ * Builder for {@link SPSSODescriptor}.
  */
 public class SPSSODescriptorBuilder extends AbstractSAMLObjectBuilder<SPSSODescriptor> {
 
-    /**
-     * Constructor.
-     */
-    public SPSSODescriptorBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SPSSODescriptor buildObject() {
+    @Override
+    @Nonnull public SPSSODescriptor buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, SPSSODescriptor.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SPSSODescriptor buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SPSSODescriptor buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SPSSODescriptorImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceDescriptionBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceDescriptionBuilder.java
index 5710b6181..a5fb23ee8 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceDescriptionBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceDescriptionBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.ServiceDescription;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.ServiceDescriptionImpl}.
+ * Builder for {@link ServiceDescription}.
  */
 public class ServiceDescriptionBuilder extends AbstractSAMLObjectBuilder<ServiceDescription> {
 
-    /**
-     * Constructor.
-     */
-    public ServiceDescriptionBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ServiceDescription buildObject() {
+    @Override
+    @Nonnull public ServiceDescription buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, ServiceDescription.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ServiceDescription buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public ServiceDescription buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ServiceDescriptionImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceNameBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceNameBuilder.java
index 42b5e2ff7..d812536d2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceNameBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/ServiceNameBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.ServiceName;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.ServiceNameImpl}.
+ * Builder for {@link ServiceName}.
  */
 public class ServiceNameBuilder extends AbstractSAMLObjectBuilder<ServiceName> {
 
-    /**
-     * Constructor.
-     */
-    public ServiceNameBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public ServiceName buildObject() {
+    @Override
+    @Nonnull public ServiceName buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, ServiceName.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public ServiceName buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public ServiceName buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new ServiceNameImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceBuilder.java
index 885448f21..7c4e06736 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleLogoutServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.SingleLogoutService;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.SingleLogoutServiceImpl}.
+ * Builder for {@link SingleLogoutService}.
  */
 public class SingleLogoutServiceBuilder extends AbstractSAMLObjectBuilder<SingleLogoutService> {
 
-    /**
-     * Constructor.
-     */
-    public SingleLogoutServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SingleLogoutService buildObject() {
+    @Override
+    @Nonnull public SingleLogoutService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, SingleLogoutService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SingleLogoutService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SingleLogoutService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new SingleLogoutServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleSignOnServiceBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleSignOnServiceBuilder.java
index d88620cf3..9229555bf 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleSignOnServiceBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SingleSignOnServiceBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.SingleSignOnService;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.SingleSignOnServiceImpl}.
+ * Builder for {@link SingleSignOnService}.
  */
 public class SingleSignOnServiceBuilder extends AbstractSAMLObjectBuilder<SingleSignOnService> {
 
-    /**
-     * Constructor.
-     */
-    public SingleSignOnServiceBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SingleSignOnService buildObject() {
+    @Override
+    @Nonnull public SingleSignOnService buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, SingleSignOnService.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SingleSignOnService buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public SingleSignOnService buildObject(@Nullable final String namespaceURI,
+            @Nonnull final String localName, @Nullable final String namespacePrefix) {
         return new SingleSignOnServiceImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SurNameBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SurNameBuilder.java
index 584a97b24..fb24afde1 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SurNameBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/SurNameBuilder.java
@@ -21,30 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.SurName;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.SurNameImpl}.
+ * Builder for {@link SurName}.
  */
 public class SurNameBuilder extends AbstractSAMLObjectBuilder<SurName> {
 
-    /**
-     * Constructor.
-     */
-    public SurNameBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public SurName buildObject() {
+    @Override
+    @Nonnull public SurName buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, SurName.DEFAULT_ELEMENT_LOCAL_NAME, 
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public SurName buildObject(final String namespaceURI, final String localName, final String namespacePrefix) {
+    @Override
+    @Nonnull public SurName buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new SurNameImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/TelephoneNumberBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/TelephoneNumberBuilder.java
index 6b9f65b5b..104817c11 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/TelephoneNumberBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/TelephoneNumberBuilder.java
@@ -21,31 +21,30 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opensaml.saml.common.AbstractSAMLObjectBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
 import org.opensaml.saml.saml2.metadata.TelephoneNumber;
 
 /**
- * Builder of {@link org.opensaml.saml.saml2.metadata.impl.TelephoneNumberImpl}.
+ * Builder for {@link TelephoneNumber}.
  */
 public class TelephoneNumberBuilder extends AbstractSAMLObjectBuilder<TelephoneNumber> {
 
-    /**
-     * Constructor.
-     */
-    public TelephoneNumberBuilder() {
-
-    }
-
     /** {@inheritDoc} */
-    public TelephoneNumber buildObject() {
+    @Override
+    @Nonnull public TelephoneNumber buildObject() {
         return buildObject(SAMLConstants.SAML20MD_NS, TelephoneNumber.DEFAULT_ELEMENT_LOCAL_NAME,
                 SAMLConstants.SAML20MD_PREFIX);
     }
 
     /** {@inheritDoc} */
-    public TelephoneNumber buildObject(final String namespaceURI, final String localName,
-            final String namespacePrefix) {
+    @Override
+    @Nonnull public TelephoneNumber buildObject(@Nullable final String namespaceURI, @Nonnull final String localName,
+            @Nullable final String namespacePrefix) {
         return new TelephoneNumberImpl(namespaceURI, localName, namespacePrefix);
     }
+    
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list