@Override
            public boolean contains(Object o) {

                // The Collection view of an ArbitraryAttributeMap can contain
                // only ArbitraryAttributeModel objects
                if (!(o instanceof ArbitraryAttributeModel))
                    return false;

                // No need to check the value of the attribute if the attribute
                // is not even present
                ArbitraryAttributeModel model = (ArbitraryAttributeModel) o;
                String value = get(model.getName());
                if (value == null)
                    return false;

                // The name/value pair is present only if the value matches
                return value.equals(model.getValue());

            }
Returns a collection of model objects which mirrors the contents of this
ArbitraryAttributeMap. Each name/value pair within the map is reflected
by a corresponding model object within the returned collection. Removing
a model object from the collection removes the corresponding name/value
pair from the map. Adding a new model object to the collection adds a
corresponding name/value pair to the map. Changes to a model object
within the collection are NOT reflected on the map, however.

@return
    A collection of model objects which mirrors the contents of this
    ArbitraryAttributeMap.
extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ArbitraryAttributeMap.java