test_class.declarator: methodLoggingAdvice
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private MethodLoggingAdvice methodLoggingAdvice;
test_class.type: MethodLoggingAdvice
test_class.var_name: methodLoggingAdvice
test_class.file: herd-code/herd-dao/src/test/java/org/finra/herd/dao/MethodLoggingAdviceTest.java
test_class.identifier: MethodLoggingAdviceTest
test_class.superclass: extends AbstractDaoTest
test_case.body: @Test
      public void testLogMethodTime() throws Throwable
      {
          // Normal flow should log the method time.
          methodLoggingAdvice.logMethodBeingInvoked(new MockProceedingJoinPoint());
      }
test_case.class_method_signature: MethodLoggingAdviceTest.testLogMethodTime()
test_case.full_signature: @Test public void testLogMethodTime()
test_case.identifier: testLogMethodTime
test_case.invocations: logMethodBeingInvoked
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testLogMethodTime()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(MethodLoggingAdvice.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(MethodLoggingAdvice.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.file: herd-code/herd-dao/src/main/java/org/finra/herd/dao/MethodLoggingAdvice.java
focal_class.identifier: MethodLoggingAdvice
focal_class.class_method_signature: MethodLoggingAdvice.operationsMethods()
focal_class.full_signature: @Pointcut("execution(* org.finra.herd.dao.*Operations.*(..))") protected void operationsMethods()
focal_class.identifier: operationsMethods
focal_class.modifiers: @Pointcut("execution(* org.finra.herd.dao.*Operations.*(..))") protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void operationsMethods()
focal_class.class_method_signature: MethodLoggingAdvice.logMethodBeingInvoked(ProceedingJoinPoint pjp)
focal_class.full_signature: @Around("operationsMethods()") public Object logMethodBeingInvoked(ProceedingJoinPoint pjp)
focal_class.identifier: logMethodBeingInvoked
focal_class.modifiers: @Around("operationsMethods()") public
focal_class.parameters: (ProceedingJoinPoint pjp)
focal_class.return: Object
focal_class.signature: Object logMethodBeingInvoked(ProceedingJoinPoint pjp)
focal_method.body: @Around("operationsMethods()")
      public Object logMethodBeingInvoked(ProceedingJoinPoint pjp) throws Throwable
      {
          // Get the target class being called.
          Class<?> targetClass = pjp.getTarget().getClass();
  
          // Get the target method being called.
          MethodSignature targetMethodSignature = (MethodSignature) pjp.getSignature();
          Method targetMethod = targetMethodSignature.getMethod();
          if (targetMethod.getDeclaringClass().isInterface())
          {
              // Get the underlying implementation if we are given an interface.
              targetMethod = pjp.getTarget().getClass().getMethod(pjp.getSignature().getName(), targetMethod.getParameterTypes());
          }
  
          // Only log the method if the class and method aren't suppressing logging and the log level is debug.
          if ((AnnotationUtils.findAnnotation(targetClass, SuppressLogging.class) == null) &&
              (AnnotationUtils.findAnnotation(targetMethod, SuppressLogging.class) == null) && (LOGGER.isDebugEnabled()))
          {
              LOGGER.debug("javaMethod=\"{}.{}\"", targetClass.getName(), targetMethodSignature.getName());
          }
  
          // Proceed to the join point (i.e. call the method and let it return).
          return pjp.proceed();
      }
focal_method.class_method_signature: MethodLoggingAdvice.logMethodBeingInvoked(ProceedingJoinPoint pjp)
focal_method.full_signature: @Around("operationsMethods()") public Object logMethodBeingInvoked(ProceedingJoinPoint pjp)
focal_method.identifier: logMethodBeingInvoked
focal_method.invocations: getClass getTarget getSignature getMethod isInterface getDeclaringClass getMethod getClass getTarget getName getSignature getParameterTypes findAnnotation findAnnotation isDebugEnabled debug getName getName proceed
focal_method.modifiers: @Around("operationsMethods()") public
focal_method.parameters: (ProceedingJoinPoint pjp)
focal_method.return: Object
focal_method.signature: Object logMethodBeingInvoked(ProceedingJoinPoint pjp)