CompositeLabelFilter.java

package com.alibaba.fastjson2.filter;

import java.util.ArrayList;
import java.util.List;

final class CompositeLabelFilter
        implements LabelFilter {
    private final List<LabelFilter> filters = new ArrayList<>();

    CompositeLabelFilter(LabelFilter... filters) {
        for (LabelFilter filter : filters) {
            if (filter != null) {
                this.filters.add(filter);
            }
        }
    }

    void add(LabelFilter filter) {
        if (filter != null) {
            this.filters.add(filter);
        }
    }

    @Override
    public boolean apply(String label) {
        for (LabelFilter filter : filters) {
            if (!filter.apply(label)) {
                return false;
            }
        }
        return true;
    }
}