<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.

  $Id: log-on-config.xml 462838 2006-10-11 16:08:36Z rahul $

-->

<!--

  Dialog definitions for Shale Use Cases Example Web Application
  written out as SCXML to demonstrate use of Commons SCXML as one
  of Shale's Dialog Manager implementations.

  Related artifacts from <dialog name="Log On">...</dialog>
  in original dialogs definition file from Shale nightlies.

-->

<scxml xmlns="http://www.w3.org/2005/01/SCXML" version="1.0"  
       initialstate="checkCookie">


  <state                 id="checkCookie">

    <onentry>
      <var             name="cookieOutcome"
                       expr="#{profile$logon.check}" />
    </onentry>

    <transition        cond="${cookieOutcome eq 'authenticated'}">
      <target          next="exit"/>
    </transition>

    <transition        cond="${cookieOutcome eq 'unauthenticated'}">
      <target          next="logon"/>
    </transition>

  </state>

  <state                 id="logon">

    <transition       event="faces.outcome"
                       cond="${outcome eq 'authenticated'}">
      <target          next="exit"/>
    </transition>

    <transition       event="faces.outcome"
                       cond="${outcome eq 'create'}">
      <target          next="createProfile"/>
    </transition>

  </state>

  <state                 id="createProfile"
                        src="edit-profile-config.xml" >

      <transition     event="createProfile.done"
                       cond="${outcome eq 'success' or outcome eq 'cancel'}">
        <target        next="exit"/>
      </transition>

  </state>

  <state                 id="exit"
                      final="true" />

</scxml>
