RegexPointcut.java

package sprout.aop.advisor;

import java.lang.reflect.Method;
import java.util.regex.Pattern;

@Deprecated(forRemoval = true)
public class RegexPointcut implements Pointcut {
    private final Pointcut delegate;

    public RegexPointcut(String classExpr, String methodExpr) {
        // classExpr 또는 methodExpr 가 비어있을 수 있으니 기본값 처리
        String cls = (classExpr == null || classExpr.isBlank()) ? "..*" : classExpr.trim();
        String mtd = (methodExpr == null || methodExpr.isBlank()) ? "*"   : methodExpr.trim();

        // AspectJ execution 표현식으로 변환
        String aspectj = "execution(* " + cls + "." + mtd + "(..))";
        this.delegate = new AspectJPointcutAdapter(aspectj);
    }

    @Override
    public boolean matches(Class<?> targetClass, Method method) {
        return delegate.matches(targetClass, method);
    }

    @Override
    public String toString() {
        return delegate.toString();
    }
}