doubleSetEquals Function Description

Description

This method returns true if both sets of attribute values of type double are equal. Technically, it uses the subset function on the first and second arguments ANDed with the subset function and the second and first argument. Note that duplicate values have no impact on the comparison. For instance, the following 2 sets are equal: [a,a,c,b] and [b,c,a,c].

doubleSetEquals belongs to the ALFA function reference's Set functions category. It maps to the XACML function identifier urn:oasis:names:tc:xacml:1.0:function:double-set-equals, takes 2 arguments and returns a value of type boolean.

Property Value
Category Set functions
# Arguments 2
Arguments
  • A bag of type double
  • A bag of type double
Return Value boolean
Expressed As pre-fix
Representation ALFA short name
Allowed In Target false
ALFA Shorthand None
Commutative true

Example

/**
* Permit if the user has the exact set of parts required to assemble the product - no more, no less
*/
rule doubleSetEqualsExample{
    condition doubleSetEquals(parts.numbers, product.requiredParts)
    permit
}

In this example, the user needs to assemble a product (e.g. an IKEA piece of furniture). The user is only allowed to assemble the product if they have the exact set of parts needed for the product.