aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/kamon/instrumentation/AspectJPimps.scala
blob: 0663e801a9a0d0163b3e717255a39eef51a8bf30 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package kamon.instrumentation

import org.aspectj.lang.ProceedingJoinPoint

trait ProceedingJoinPointPimp {
  import language.implicitConversions

  implicit def pimpProceedingJointPoint(pjp: ProceedingJoinPoint) = RichProceedingJointPoint(pjp)
}

object ProceedingJoinPointPimp extends ProceedingJoinPointPimp

case class RichProceedingJointPoint(pjp: ProceedingJoinPoint) {
  def proceedWith(newUniqueArg: AnyRef) = {
    val args = pjp.getArgs
    args.update(0, newUniqueArg)
    pjp.proceed(args)
  }
}