SPFE Documentation | Collections > SPFE Function Reference > satisfies-condition

Function: satisfies-condition

satisfies-condition(conditions-list as item()*, tokens-list as item()*, index as item()*) as xs:boolean

Description

A recursive function that checks a series of conditions against a series of condition tokens and returns true if there is a match. It takes account of conditions joined by a plus sign, returning true only if both conditions are satisfied. This is a helper function for the sf:conditions-met function.

Return value

Return type: xs:boolean

True if the conditions match, otherwise false.

Source file

$SPFEOT_HOME/1.0/scripts/common/utility-functions.xsl

Parameters

conditions-list

Type: item()*

A sequence consisting of conditions attached to an element.

tokens-list

Type: item()*

A sequence consisting of the condition tokens specified in the build.

index

Type: item()*

The index in the tokens-list to check in this recursion.

Definition

            <xsl:function name="sf:satisfies-condition" as="xs:boolean">
		               <xsl:param name="conditions-list"/>
		               <xsl:param name="tokens-list"/>
		               <xsl:value-of select="sf:satisfies-condition($conditions-list, $tokens-list, 1)"/>
	           </xsl:function>
         
            <xsl:function name="sf:satisfies-condition" as="xs:boolean">
		               <xsl:param name="conditions-list"/>
		               <xsl:param name="tokens-list"/>
		               <xsl:param name="index"/>

		               <xsl:variable name="and-tokens" select="tokenize($tokens-list[$index], '\+')"/>

		               <xsl:choose >
			                   <xsl:when test="every $item in $and-tokens satisfies $item=$conditions-list">
				                       <xsl:value-of select="true()"/>
			                   </xsl:when>
			                   <xsl:when test="$index lt count($tokens-list)">
				                       <xsl:value-of select="sf:satisfies-condition($conditions-list, $tokens-list, $index + 1)"/>
			                   </xsl:when>
			                   <xsl:otherwise >
				                       <xsl:value-of select="false()"/>
			                   </xsl:otherwise>
		               </xsl:choose>
	           </xsl:function>