[java-identity-provider COMMIT] /trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateA...

noreply at shibboleth.net noreply at shibboleth.net
Mon Aug 18 21:00:36 EDT 2014


Author: scantor
Date: Mon Aug 18 21:00:36 2014
New Revision: 6443

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6443&view=rev
Log:
IDP-375 - Custom formatting of DateTime fields

Modified:
    trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java

Modified: trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java?rev=6443&r1=6442&r2=6443&view=diff
==============================================================================
--- trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java (original)
+++ trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java Mon Aug 18 21:00:36 2014
@@ -34,6 +34,7 @@
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
+import org.joda.time.DateTime;
 import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.opensaml.profile.action.ActionSupport;
 import org.opensaml.profile.action.EventIds;
@@ -70,6 +71,9 @@
     
     /** Fields being audited, to optimize extraction.. */
     @Nonnull @NonnullElements private Set<String> fieldsToExtract;
+    
+    /** Formatting string for {@link DateTime} fields. */
+    @Nullable private String dateTimeFormat;
     
     /** {@link AuditContext} to populate. */
     @Nullable private AuditContext auditCtx;
@@ -156,6 +160,17 @@
         }
     }
 
+    /**
+     * Set the {@link DateTime} formatting string to apply when extracting {@link DateTime}-valued fields.
+     * 
+     * @param format formatting string
+     */
+    public void setDateTimeFormat(@Nonnull @NotEmpty final String format) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
+        dateTimeFormat = StringSupport.trimOrNull(format);
+    }
+    
     /** {@inheritDoc} */
     @Override
     protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -174,6 +189,7 @@
         return true;
     }
     
+// Checkstyle: CyclomaticComplexity OFF
     /** {@inheritDoc} */
     @Override
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -192,15 +208,25 @@
                             entry.getKey());
                     for (final Object value : (Collection) values) {
                         if (value != null) {
-                            auditCtx.getFieldValues(entry.getKey()).add(value.toString());
+                            if (value instanceof DateTime) {
+                                auditCtx.getFieldValues(entry.getKey()).add(((DateTime) value).toString(
+                                        dateTimeFormat));
+                            } else {
+                                auditCtx.getFieldValues(entry.getKey()).add(value.toString());
+                            }
                         }
                     }
                 } else {
                     log.debug("{} Adding 1 value for field '{}'", getLogPrefix(), entry.getKey());
-                    auditCtx.getFieldValues(entry.getKey()).add(values.toString());
+                    if (values instanceof DateTime) {
+                        auditCtx.getFieldValues(entry.getKey()).add(((DateTime) values).toString(dateTimeFormat));
+                    } else {
+                        auditCtx.getFieldValues(entry.getKey()).add(values.toString());
+                    }
                 }
             }
         }
     }
+// Checkstyle: CyclomaticComplexity ON
     
 }



More information about the commits mailing list