func (q *Query) HasAttribute(attributes ...string) bool {
	for _, attribute := range attributes {
		for _, queryAttribute := range q.Attributes {
			if attribute == queryAttribute {
				return true
			}
		}
	}
	return false
}
HasAttribute checks if this query contains any of the provided attributes.
package query
import (
	"os"
	"path/filepath"
	"strings"
)
type Query struct {
	Attributes []string
	Modifiers  map[string][]Modifier
	Sources       map[string][]string
	SourceAliases map[string]string
	ConditionTree *ConditionNode
}
func NewQuery() *Query {
	return &Query{
		Attributes: make([]string, 0),
		Modifiers:  make(map[string][]Modifier),
		Sources: map[string][]string{
			"include": make([]string, 0),
			"exclude": make([]string, 0),
		},
		SourceAliases: make(map[string]string),
		ConditionTree: nil,
	}
}