Package org.aspectj.weaver.tools

Examples of org.aspectj.weaver.tools.ShadowMatch


  }

  public boolean matches(Method method, Class targetClass, boolean beanHasIntroductions) {
    checkReadyToMatch();
    Method targetMethod = AopUtils.getMostSpecificMethod(method, targetClass);
    ShadowMatch shadowMatch = null;
    try {
      shadowMatch = getShadowMatch(targetMethod, method);
    }
    catch (ReflectionWorld.ReflectionWorldException ex) {
      // Could neither introspect the target class nor the proxy class ->
      // let's simply consider this method as non-matching.
      return false;
    }

    // Special handling for this, target, @this, @target, @annotation
    // in Spring - we can optimize since we know we have exactly this class,
    // and there will never be matching subclass at runtime.
    if (shadowMatch.alwaysMatches()) {
      return true;
    }
    else if (shadowMatch.neverMatches()) {
      return false;
    }
    else {
      // the maybe case
      return (beanHasIntroductions || matchesIgnoringSubtypes(shadowMatch) || matchesTarget(shadowMatch, targetClass));
View Full Code Here


    return this.pointcutExpression.mayNeedDynamicTest();
  }

  public boolean matches(Method method, Class targetClass, Object[] args) {
    checkReadyToMatch();
    ShadowMatch shadowMatch = null;
    ShadowMatch originalShadowMatch = null;
    try {
      shadowMatch = getShadowMatch(AopUtils.getMostSpecificMethod(method, targetClass), method);
      originalShadowMatch = getShadowMatch(method, method);
    }
    catch (ReflectionWorld.ReflectionWorldException ex) {
View Full Code Here

    invocation.setUserAttribute(getExpression(), jpm);
  }

  private ShadowMatch getShadowMatch(Method targetMethod, Method originalMethod) {
    synchronized (this.shadowMapCache) {
      ShadowMatch shadowMatch = (ShadowMatch) this.shadowMapCache.get(targetMethod);
      if (shadowMatch == null) {
        try {
          shadowMatch = this.pointcutExpression.matchesMethodExecution(targetMethod);
        }
        catch (ReflectionWorld.ReflectionWorldException ex) {
View Full Code Here

  }

  public boolean matches(Method method, Class targetClass, boolean beanHasIntroductions) {
    checkReadyToMatch();
    Method targetMethod = AopUtils.getMostSpecificMethod(method, targetClass);
    ShadowMatch shadowMatch = null;
    try {
      shadowMatch = getShadowMatch(targetMethod, method);
    }
    catch (ReflectionWorld.ReflectionWorldException ex) {
      // Could neither introspect the target class nor the proxy class ->
      // let's simply consider this method as non-matching.
      return false;
    }

    // Special handling for this, target, @this, @target, @annotation
    // in Spring - we can optimize since we know we have exactly this class,
    // and there will never be matching subclass at runtime.
    if (shadowMatch.alwaysMatches()) {
      return true;
    }
    else if (shadowMatch.neverMatches()) {
      return false;
    }
    else {
      // the maybe case
      return (beanHasIntroductions || matchesIgnoringSubtypes(shadowMatch) || matchesTarget(shadowMatch, targetClass));
View Full Code Here

    return this.pointcutExpression.mayNeedDynamicTest();
  }

  public boolean matches(Method method, Class targetClass, Object[] args) {
    checkReadyToMatch();
    ShadowMatch shadowMatch = null;
    ShadowMatch originalShadowMatch = null;
    try {
      shadowMatch = getShadowMatch(AopUtils.getMostSpecificMethod(method, targetClass), method);
      originalShadowMatch = getShadowMatch(method, method);
    }
    catch (ReflectionWorld.ReflectionWorldException ex) {
View Full Code Here

    invocation.setUserAttribute(getExpression(), jpm);
  }

  private ShadowMatch getShadowMatch(Method targetMethod, Method originalMethod) {
    synchronized (this.shadowMapCache) {
      ShadowMatch shadowMatch = (ShadowMatch) this.shadowMapCache.get(targetMethod);
      if (shadowMatch == null) {
        try {
          shadowMatch = this.pointcutExpression.matchesMethodExecution(targetMethod);
        }
        catch (ReflectionWorld.ReflectionWorldException ex) {
View Full Code Here

  private ExposedState getExposedState() {
    return new ExposedState(parameters.length);
  }

  public ShadowMatch matchesMethodExecution(Method aMethod) {
    ShadowMatch match = matchesExecution(aMethod);
    if (MATCH_INFO && match.maybeMatches()) {
      System.out.println("MATCHINFO: method execution match on '" + aMethod + "' for '" + this.expression + "': "
          + (match.alwaysMatches() ? "YES" : "MAYBE"));
    }
    return match;
  }
View Full Code Here

    }
    return match;
  }

  public ShadowMatch matchesConstructorExecution(Constructor aConstructor) {
    ShadowMatch match = matchesExecution(aConstructor);
    if (MATCH_INFO && match.maybeMatches()) {
      System.out.println("MATCHINFO: constructor execution match on '" + aConstructor + "' for '" + this.expression + "': "
          + (match.alwaysMatches() ? "YES" : "MAYBE"));
    }
    return match;
  }
View Full Code Here

  @Override
  public boolean matches(Method method, Class<?> targetClass, boolean beanHasIntroductions) {
    checkReadyToMatch();
    Method targetMethod = AopUtils.getMostSpecificMethod(method, targetClass);
    ShadowMatch shadowMatch = getShadowMatch(targetMethod, method);

    // Special handling for this, target, @this, @target, @annotation
    // in Spring - we can optimize since we know we have exactly this class,
    // and there will never be matching subclass at runtime.
    if (shadowMatch.alwaysMatches()) {
      return true;
    }
    else if (shadowMatch.neverMatches()) {
      return false;
    }
    else {
      // the maybe case
      if (beanHasIntroductions) {
View Full Code Here

  }

  @Override
  public boolean matches(Method method, Class<?> targetClass, Object[] args) {
    checkReadyToMatch();
    ShadowMatch shadowMatch = getShadowMatch(AopUtils.getMostSpecificMethod(method, targetClass), method);
    ShadowMatch originalShadowMatch = getShadowMatch(method, method);

    // Bind Spring AOP proxy to AspectJ "this" and Spring AOP target to AspectJ target,
    // consistent with return of MethodInvocationProceedingJoinPoint
    ProxyMethodInvocation pmi = null;
    Object targetObject = null;
View Full Code Here

TOP

Related Classes of org.aspectj.weaver.tools.ShadowMatch

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.