/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  org.springframework.aop.ClassFilter
 *  org.springframework.aop.MethodMatcher
 *  org.springframework.aop.Pointcut
 *  org.springframework.aop.support.ComposablePointcut
 *  org.springframework.aop.support.annotation.AnnotationClassFilter
 *  org.springframework.aop.support.annotation.AnnotationMethodMatcher
 *  org.springframework.core.Ordered
 */
package com.l7tech.server.util;

import java.lang.annotation.Annotation;
import java.util.Collection;
import org.springframework.aop.ClassFilter;
import org.springframework.aop.MethodMatcher;
import org.springframework.aop.Pointcut;
import org.springframework.aop.support.ComposablePointcut;
import org.springframework.aop.support.annotation.AnnotationClassFilter;
import org.springframework.aop.support.annotation.AnnotationMethodMatcher;
import org.springframework.core.Ordered;

public class AnnotationPointcut
implements Ordered,
Pointcut {
    private final ComposablePointcut a;
    private final int b;

    public AnnotationPointcut(Collection<Class<? extends Annotation>> collection, Collection<Class<? extends Annotation>> collection2, boolean bl2, int n2) {
        AnnotationClassFilter annotationClassFilter;
        ComposablePointcut composablePointcut = new ComposablePointcut();
        for (Class<? extends Annotation> clazz : collection) {
            annotationClassFilter = new AnnotationClassFilter(clazz, bl2);
            composablePointcut.intersection((ClassFilter)annotationClassFilter);
        }
        for (Class<? extends Annotation> clazz : collection2) {
            annotationClassFilter = new AnnotationMethodMatcher(clazz);
            composablePointcut.intersection((MethodMatcher)annotationClassFilter);
        }
        this.a = composablePointcut;
        this.b = n2;
    }

    public ClassFilter getClassFilter() {
        return this.a.getClassFilter();
    }

    public MethodMatcher getMethodMatcher() {
        return this.a.getMethodMatcher();
    }

    public int getOrder() {
        return this.b;
    }
}

