Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (C) 2014 Philip Helger (www.helger.com) philip[at]helger[dot]com Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
 
 package com.helger.appbasics.security.audit;
 
 
Abstract base class for interface IAuditor.

Author(s):
Philip Helger
 
 public abstract class AbstractAuditor implements IAuditor
 {
 
   public AbstractAuditor (@Nonnull final ICurrentUserIDProvider aCurrentUserIDProvider)
   {
     setCurrentUserIDProvider (aCurrentUserIDProvider);
   }
 
   public final void setCurrentUserIDProvider (@Nonnull final ICurrentUserIDProvider aCurrentUserIDProvider)
   {
      = ValueEnforcer.notNull (aCurrentUserIDProvider"CurrentUserIDProvider");
   }

  

Returns:
true to create a Json string, false to create a legacy comma separated list
 
   protected boolean useJsonNotation ()
   {
     return true;
   }

  
Implement this method to handle the created audit items.

Parameters:
aAuditItem The audit item to handle. Never null.
 
   protected abstract void handleAuditItem (@Nonnull IAuditItem aAuditItem);
 
   private void _createAuditItem (@Nonnull final EAuditActionType eType,
                                  @Nonnull final ESuccess eSuccess,
                                  @Nonnull final String sAction)
   {
     final AuditItem aAuditItem = new AuditItem (.getCurrentUserID (), eTypeeSuccesssAction);
     handleAuditItem (aAuditItem);
   }
 
   @Nonnull
   protected String createAuditString (@Nonnull final String sObjectType, @Nullable final Object [] aArgs)
   {
     if (useJsonNotation ())
     {
       // Get Json representation for easy evaluation afterwards
       final JsonArray aData = new JsonArray ();
       if (aArgs != null)
         for (final Object aArg : aArgs)
           aData.add (aArg);
       return new JsonObject ().add (sObjectTypeaData).getAsString ();
     }
 
     // Use regular formatting
     if (ArrayHelper.isEmpty (aArgs))
       return sObjectType;
 
     final StringBuilder aSB = new StringBuilder (sObjectType).append ('(');
     for (int i = 0; i < aArgs.length; ++i)
     {
       if (i > 0)
        aSB.append (',');
      aSB.append (aArgs[i]);
    }
    return aSB.append (')').toString ();
  }
  public void onCreateSuccess (@Nonnull final ObjectType aObjectType, @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (), aArgs));
  }
  public void onCreateFailure (@Nonnull final ObjectType aObjectType, @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (), aArgs));
  }
  public void onModifySuccess (@Nonnull final ObjectType aObjectType,
                               @Nonnull final String sWhat,
                               @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (),
                                         ArrayHelper.getConcatenated (sWhataArgsObject.class)));
  }
  public void onModifyFailure (@Nonnull final ObjectType aObjectType,
                               @Nonnull final String sWhat,
                               @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (),
                                         ArrayHelper.getConcatenated (sWhataArgsObject.class)));
  }
  public void onDeleteSuccess (@Nonnull final ObjectType aObjectType, @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (), aArgs));
  }
  public void onDeleteFailure (@Nonnull final ObjectType aObjectType, @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (), aArgs));
  }
  public void onUndeleteSuccess (@Nonnull final ObjectType aObjectType, @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (), aArgs));
  }
  public void onUndeleteFailure (@Nonnull final ObjectType aObjectType, @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (), aArgs));
  }
  public void onExecuteSuccess (@Nonnull final String sWhat, @Nullable final Object... aArgs)
  {
  }
  public void onExecuteFailure (@Nonnull final String sWhat, @Nullable final Object... aArgs)
  {
  }
  public void onExecuteSuccess (@Nonnull final ObjectType aObjectType,
                                @Nonnull final String sWhat,
                                @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (),
                                         ArrayHelper.getConcatenated (sWhataArgsObject.class)));
  }
  public void onExecuteFailure (@Nonnull final ObjectType aObjectType,
                                @Nonnull final String sWhat,
                                @Nullable final Object... aArgs)
  {
    ValueEnforcer.notNull (aObjectType"ObjectType");
                      .,
                      createAuditString (aObjectType.getObjectTypeName (),
                                         ArrayHelper.getConcatenated (sWhataArgsObject.class)));
  }
New to GrepCode? Check out our FAQ X