class OrArtifactFilter implements ArtifactFilter {

    private Set<ArtifactFilter> filters;

    public OrArtifactFilter() {
        this.filters = new LinkedHashSet<>();
    }

    public OrArtifactFilter(Collection<ArtifactFilter> filters) {
        this.filters = new LinkedHashSet<>(filters);
    }

    public boolean include(Artifact artifact) {<FILL_FUNCTION_BODY>}

    public void add(ArtifactFilter artifactFilter) {
        filters.add(artifactFilter);
    }

    @Override
    public int hashCode() {
        int hash = 17;
        hash = hash * 31 + filters.hashCode();
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }

        if (!(obj instanceof OrArtifactFilter)) {
            return false;
        }

        OrArtifactFilter other = (OrArtifactFilter) obj;

        return filters.equals(other.filters);
    }
}

        for (ArtifactFilter filter : filters) {
            if (filter.include(artifact)) {
                return true;
            }
        }

        return false;
    
<no_super_class>