package org.stagemonitor.tracing; import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; import static net.bytebuddy.matcher.ElementMatchers.inheritsAnnotation; import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.not; public class ClassLevelMonitorRequestsTransformer extends AbstractMonitorRequestsTransformer { @Override protected ElementMatcher.Junction<TypeDescription> getNarrowTypesMatcher() { return inheritsAnnotation(MonitorRequests.class); } @Override protected ElementMatcher.Junction<MethodDescription> getExtraMethodElementMatcher() { return isPublic().and(not(isAnnotatedWith(MonitorRequests.class))); } }