wffweb/src/main/java/com/webfirmframework/wffweb/tag/repository/TagRepository.java
public static Stream<AbstractAttribute> buildAllAttributesStream(
            final boolean parallel, final AbstractHtml... fromTags) {
        final Stream<AbstractAttribute> attributesStream = getAllNestedChildrenIncludingParent(
                parallel, fromTags).filter(tag -> tag.getAttributes() != null)
                        .map(tag -> {
                            return tag.getAttributes();
                        }).flatMap(attributes -> attributes.stream());
        return attributesStream;
    }
public static Stream<AbstractAttribute> buildAllAttributesStream(
            final boolean parallel, final AbstractHtml... fromTags) {
        final Stream<AbstractAttribute> attributesStream = getAllNestedChildrenIncludingParent(
                parallel, fromTags).filter(tag -> tag.getAttributes() != null)
                        .map(tag -> {
                            return tag.getAttributes();
                        }).flatMap(attributes -> attributes.stream());
        return attributesStream;
    }
Builds all attributes stream from the given tags.

@param parallel
true to internally use parallel stream. If true it
will split the finding task to different batches and
will execute the batches in different threads in
parallel consuming all CPUs. It will perform faster
in finding from extremely large number of tags but at
the same time it will less efficient in finding from
small number of tags.
@param fromTags
the tags to build stream of nested children's
attributes from.
@return {@code Stream<AbstractAttribute>}
@since 3.0.0
@author WFF