Establish the following local variables:
- PAL Policy 'unavailable-activities-set' from 'availEval'
- boolean variables $boolTmp and $theResult initialized to 'false'.
bpel:getVariableProperty("availEval" "pc:unavailable-activities-set")
$acPol
boolean(0)
$boolTmp
boolean(0)
$theResult
Determine applicable person PIDF tuple from 'availEval' and
assign to $person as detailed in [PDE_Spec],
section "Default Watcher Processing".
Validate Person tuple contained in $person, and establish all activities
(i.e. exclusive of sub-elements '<note>'
and '<unknown>') into variable $acTmp.
0 and count($acPol) > 0]]>
For each <activities> 'a' of $person tuple:
- determine if 'a' matches the i'th element from $acPol
- $boolTmp is non-zero if a match exists
(i.e. Person 'unavailable').
Find a service tuple(s) referenced by the applicable
PAL Presence Context in $availEval, and assign the
result to $service.
Establish <registration-state> and policy
'pc:undef-registration-state' to determine an appropriate
value for the registration state in ##opaque.regState.
Establish <barring-state> and policy
'pc:undef-barring-state' to determine an appropriate
value for the registration state in ##opaque.barState.
Re-synchronize two concurrent flows, and verify the
resulting values of ##opaque.regState
and ##opaque.barState. If values are valid/defined,
then $theResult is established based on both
(##opaque.regState = 'active' AND ##opaque.barState = 'active),
otherwise base value of $theResult on whether tuple(s) in
$service has a defined 'app-specific-availability' element.