/* ******************************************************************* * Copyright (c) 2005 Contributors. * All rights reserved. * This program and the accompanying materials are made available * under the terms of the Eclipse Public License v 2.0 * which accompanies this distribution and is available at * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt * * Contributors: * Adrian Colyer Initial implementation * ******************************************************************/ package org.aspectj.weaver.tools; /** * Pointcut expression interface for pointcut * expressions returned by a * PointcutDesignatorHandler. Provides an additional * matching method for matching based on context * information over and above that normally used * by AspectJ. * * @see MatchingContext * */ public interface ContextBasedMatcher { /** * return true iff this matcher could ever match * a join point in the given type * @deprecated use couldMatchJoinPointsInType(Class,MatchingContext) instead */ boolean couldMatchJoinPointsInType(Class aClass); /** * return true iff this matcher could ever match * a join point in the given type, may also use any * match context information available * @since 1.5.1 */ boolean couldMatchJoinPointsInType(Class aClass, MatchingContext matchContext); /** * return true if matchesStatically can ever return * FuzzyBoolean.MAYBE (necessitating a per-join point test * to determine matching at a given join point). */ boolean mayNeedDynamicTest(); /** * Return FuzzyBoolean.YES if a join point with the given * matching context is always matched. * Return FuzzyBoolean.NO if a join point with the given * matching context is never matched. * Return FuzzyBoolean.MAYBE if a match cannot be determined * statically (whilst generating a ShadowMatch), and must * be determined on a per-join point basis. */ FuzzyBoolean matchesStatically(MatchingContext matchContext); /** * Called during processing of ShadowMatch.matchesJoinPoint * when matchesStatically returned FuzzyBoolean.MAYBE. */ boolean matchesDynamically(MatchingContext matchContext); }