    /*

    Siesta 5.3.0
    Copyright(c) 2009-2019 Bryntum AB
    https://bryntum.com/contact
    https://bryntum.com/products/siesta/license

    */
    Class('Ariadne.DomQueryFinder.Identifier.AttributeValue', {

        isa         : Ariadne.QueryFinder.Identifier,

        does        : Ariadne.DomQueryFinder.Role.DomHelper,

        has         : {
            // an array of attribute names, which can be used for matching
            attributes                  : function () {
                return [
                    'name',
                    'title'
                ]
            }
        },

        methods : {

            initialize : function (cfg) {
                this.attributes     = this.mergeArrayAttributeFromClassHierarchy('attributes', cfg)
            },

            ignoreAttribute : function (target, attributeName) {
                return false
            },

            identify : function (target, root, maze) {
                var attributes      = this.attributes
                var segments        = []

                for (var i = 0; i < attributes.length; i++) {
                    var attribute   = attributes[ i ]

                    if (target.hasAttribute(attribute) && !this.ignoreAttribute(target, attribute))
                        segments.push("[" + attribute + "='" + this.escapeDomSelector(target.getAttribute(attribute)) + "']")
                }

                return segments
            }
        }
    });