package site.higgs.limiter.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportAware;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
import site.higgs.limiter.annotation.EnableLimiter;


@Configuration
public abstract class AbstractLimiterConfiguration implements ImportAware {


    protected AnnotationAttributes enableLimiter;

    @Override
    public void setImportMetadata(AnnotationMetadata importMetadata) {
        this.enableLimiter = AnnotationAttributes.fromMap(
                importMetadata.getAnnotationAttributes(EnableLimiter.class.getName(), false));
        if (this.enableLimiter == null) {
            throw new IllegalArgumentException(
                    "@EnableLimiter is not present on importing class " + importMetadata.getClassName());
        }
    }


}