You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by ra...@apache.org on 2005/07/30 03:28:51 UTC

svn commit: r226454 [3/3] - in /jakarta/taglibs/proper/rdc/trunk: examples/web/ examples/web/config/scxml/ src/org/apache/taglibs/rdc/scxml/ src/org/apache/taglibs/rdc/scxml/env/ src/org/apache/taglibs/rdc/scxml/model/ xml/

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ElseIf.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ElseIf.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ElseIf.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ElseIf.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,59 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <elseif> SCXML element.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class ElseIf extends Action {
+	
+    /**
+     * An conditional expression which can be evaluated to true or false.
+     */
+	private String cond;
+	
+	/**
+	 * Constructor
+	 */
+	public ElseIf() {
+		super();
+	}
+	
+	/**
+	 * Get the conditional expression
+	 * 
+	 * @return Returns the cond.
+	 */
+	public String getCond() {
+		return cond;
+	}
+	
+	/**
+	 * Set the conditional expression
+	 * 
+	 * @param cond The cond to set.
+	 */
+	public void setCond(String cond) {
+		this.cond = cond;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ElseIf.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ElseIf.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Executable.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Executable.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Executable.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Executable.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,90 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * An abstract base class for containers of executable elements in SCXML,
+ * such as <onentry> and <onexit>. 
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public abstract class Executable {
+
+    /**
+     * The set of executable elements (those that inheriting from
+     * Action) that are contained in this Executable.
+     */
+	private List actions;
+	
+	/**
+	 * The parent container, for traceability
+	 */
+	protected TransitionTarget parent;
+	
+	/**
+	 * Constructor
+	 */
+	public Executable() {
+		super();
+		this.actions = new ArrayList();
+	}
+	
+	/**
+	 * Get the executable actions contained in this Executable
+	 * 
+	 * @return Returns the actions.
+	 */
+	public List getActions() {
+		return actions;
+	}
+	
+	/**
+	 * Add an Action to the list of executable actions contained in
+	 * this Executable
+	 * 
+	 * @param action The action to add.
+	 */
+	public void addAction(Action action) {
+		if (action != null) {
+			this.actions.add(action);
+		}
+	}
+	
+	/**
+	 * Get the TransitionTarget parent
+	 * 
+	 * @return Returns the parent.
+	 */
+	public TransitionTarget getParent() {
+		return parent;
+	}
+	
+	/**
+	 * Set the TransitionTarget parent
+	 * 
+	 * @param parent The parent to set.
+	 */
+	public void setParent(TransitionTarget parent) {
+		this.parent = parent;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Executable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Executable.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Exit.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Exit.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Exit.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Exit.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,83 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <exit> SCXML element, which is a shorthand notation for 
+ * an empty anonymous final state.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class Exit extends Action {
+
+	/**
+     * The optional expression 
+     */
+	private String expr;
+	
+    /**
+     * The optional namelist
+     */
+	private String namelist;
+	
+	/**
+	 * Constructor
+	 */
+	public Exit() {
+		super();
+	}
+	
+	/**
+	 * Get the expression
+	 * 
+	 * @return Returns the expr.
+	 */
+	public String getExpr() {
+		return expr;
+	}
+	
+	/**
+	 * Set the expression
+	 * 
+	 * @param expr The expr to set.
+	 */
+	public void setExpr(String expr) {
+		this.expr = expr;
+	}
+	
+	/**
+	 * Get the namelist
+	 * 
+	 * @return Returns the namelist.
+	 */
+	public String getNamelist() {
+		return namelist;
+	}
+	
+	/**
+	 * Set the namelist
+	 * 
+	 * @param namelist The namelist to set.
+	 */
+	public void setNamelist(String namelist) {
+		this.namelist = namelist;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Exit.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Exit.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ExternalNode.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ExternalNode.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ExternalNode.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ExternalNode.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,36 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * any node in the SCXML document defined in a foreign namespace.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class ExternalNode {
+	
+	/**
+	 * Constructor
+	 */
+	public ExternalNode() {
+		super();
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ExternalNode.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ExternalNode.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/History.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/History.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/History.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/History.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,130 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <history> SCXML pseudo state element.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class History extends TransitionTarget {
+    
+	/**
+     * Whether this is a shallow or deep history, the default is shallow.
+     */
+	private boolean isDeep;
+
+    /**
+     * A conditionless transition representing the default history state 
+     * and indicates the state to transition to if the parent state has 
+     * never been entered before.
+     */
+	private Transition transition;
+	
+    /**
+     * The configuration when the parent of this pseudo state was last
+     * exited.
+     */
+    private Set lastConfiguration;
+
+    /**
+	 * Default no-args constructor for XML Digester
+	 */
+	public History() {
+		super();
+	}
+	
+	/**
+	 * Get the transition
+	 * 
+	 * @return Returns the transition.
+	 */
+	public Transition getTransition() {
+		return transition;
+	}
+	
+	/**
+	 * Set the transition
+	 * 
+	 * @param transition The transition to set.
+	 */
+	public void setTransition(Transition transition) {
+		this.transition = transition;
+	}
+	
+	/**
+	 * Is this history "deep" (as against "shallow")
+	 * 
+	 * @return Returns whether this is a "deep" history
+	 */
+	public boolean isDeep() {
+		return isDeep;
+	}
+	
+	/**
+	 * This method is invoked by XML digester when parsing SCXML markup
+	 * 
+	 * @param type The history type, which can be "shallow" or 
+	 * "deep"
+	 */
+	public void setType(String type) {
+		if(type.equals("deep")) {
+			isDeep = true;
+		}
+		//shallow is by default
+	}
+	
+	/**
+	 * Get the last configuration for this history
+	 * 
+	 * @return Returns the lastConfiguration.
+	 */
+	public Set getLastConfiguration() {
+		return lastConfiguration;
+	}
+	
+	/**
+	 * Set the last configuration for this history
+	 * 
+	 * @param lc The lastConfiguration to set.
+	 */
+	public void setLastConfiguration(Set lc) {
+		if(this.lastConfiguration == null) {
+			this.lastConfiguration = new HashSet(lc.size());
+		} else {
+			this.lastConfiguration.clear();
+		}
+		this.lastConfiguration.addAll(lc);
+	}
+	
+	/**
+	 * Check whether we have prior history
+	 * 
+	 * @return Whether we have a non-empty last configuration
+	 */
+	public boolean isEmpty() {
+		return (lastConfiguration == null || lastConfiguration.isEmpty()) ?
+				true : false;
+	}
+
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/History.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/History.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/If.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/If.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/If.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/If.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,93 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <if> SCXML element, which serves as a container for conditionally 
+ * executed elements. <else> and <elseif> can optionally 
+ * appear within an <if> as immediate children, and serve to partition 
+ * the elements within an <if>. 
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class If extends Action {
+	
+    /**
+     * An conditional expression which can be evaluated to true or false.
+     */
+	private String cond;
+
+    /**
+     * The set of executable elements (those that inheriting from
+     * Action) that are contained in this <if> element.
+     */
+	private List actions;
+	
+	/**
+	 * Constructor
+	 */
+	public If() {
+		super();
+		this.actions = new ArrayList();
+	}
+	
+	/**
+	 * Get the executable actions contained in this <if>
+	 * 
+	 * @return Returns the actions.
+	 */
+	public List getActions() {
+		return actions;
+	}
+
+	/**
+	 * Add an Action to the list of executable actions contained in
+	 * this <if>
+	 * 
+	 * @param action The action to add.
+	 */
+	public void addAction(Action action) {
+		if (action != null) {
+			this.actions.add(action);
+		}
+	}
+	
+	/**
+	 * Get the conditional expression
+	 * 
+	 * @return Returns the cond.
+	 */
+	public String getCond() {
+		return cond;
+	}
+	
+	/**
+	 * Set the conditional expression
+	 * 
+	 * @param cond The cond to set.
+	 */
+	public void setCond(String cond) {
+		this.cond = cond;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/If.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/If.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Initial.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Initial.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Initial.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Initial.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,61 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <initial> SCXML pseudo state element.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class Initial extends TransitionTarget {
+	
+	/**
+	 * Constructor
+	 */
+	public Initial() {
+		super();
+	}
+	
+	/**
+	 * A conditionless transition that is always enabled and will be taken 
+	 * as soon as the state is entered. The target of the transition must 
+	 * be a descendant of the parent state of initial.
+	 */
+	private Transition transition;
+	
+	/**
+	 * Get the initial transition
+	 * 
+	 * @return Returns the transition.
+	 */
+	public Transition getTransition() {
+		return transition;
+	}
+	
+	/**
+	 * Set the initial transition
+	 * 
+	 * @param transition The transition to set.
+	 */
+	public void setTransition(Transition transition) {
+		this.transition = transition;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Initial.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Initial.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Log.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Log.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Log.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Log.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,83 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <log> SCXML element.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class Log extends Action {
+	
+    /**
+     * An expression evaluating to a string to be logged.
+     */
+	private String expr;
+
+    /**
+     * An expression which returns string which may be used, for example, 
+     * to indicate the purpose of the log.
+     */
+	private String label;
+	
+	/**
+	 * Constructor
+	 */
+	public Log() {
+		super();
+	}
+	
+	/**
+	 * Get the log expression
+	 * 
+	 * @return Returns the expression.
+	 */
+	public String getExpr() {
+		return expr;
+	}
+	
+	/**
+	 * Set the log expression
+	 * 
+	 * @param expr The expr to set.
+	 */
+	public void setExpr(String expr) {
+		this.expr = expr;
+	}
+	
+	/**
+	 * Get the log label
+	 * 
+	 * @return Returns the label.
+	 */
+	public String getLabel() {
+		return label;
+	}
+	
+	/**
+	 * Set the log label
+	 * 
+	 * @param label The label to set.
+	 */
+	public void setLabel(String label) {
+		this.label = label;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Log.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Log.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ModelException.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ModelException.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ModelException.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ModelException.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,63 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * Exception that is thrown when the SCXML model supplied to the
+ * executor has a fatal flaw that prevents the executor from
+ * further interpreting the the model. 
+ * 
+ * @author Jaroslav Gergic
+ * @author Rahul Akolkar
+ */
+public class ModelException extends Exception {
+
+	/**
+	 * @see java.lang.Exception#Exception()
+	 */
+	public ModelException() {
+		super();
+	}
+
+	/**
+	 * @see java.lang.Exception#Exception(java.lang.String)
+	 * @param message
+	 */
+	public ModelException(String message) {
+		super(message);
+	}
+
+	/**
+	 * @see java.lang.Exception#Exception(java.lang.Throwable)
+	 * @param cause
+	 */
+	public ModelException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * @see java.lang.Exception#Exception(java.lang.String, java.lang.Throwable)
+	 * @param message
+	 * @param cause
+	 */
+	public ModelException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ModelException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/ModelException.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnEntry.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnEntry.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnEntry.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnEntry.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,38 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <onentry> SCXML element, which is an optional property 
+ * holding executable content to be run upon entering the parent
+ * State or Parallel.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class OnEntry extends Executable {
+	
+	/**
+	 * Constructor
+	 */
+	public OnEntry() {
+		super();
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnEntry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnEntry.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnExit.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnExit.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnExit.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnExit.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,38 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <onexit> SCXML element, which is an optional property 
+ * holding executable content to be run upon exiting the parent
+ * State or Parallel.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class OnExit extends Executable {
+	
+	/**
+	 * Constructor
+	 */
+	public OnExit() {
+		super();
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnExit.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/OnExit.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Parallel.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Parallel.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Parallel.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Parallel.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,70 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <parallel> SCXML element, which is a wrapper element to 
+ * encapsulate parallel state machines. For the <parallel> element 
+ * to be useful, each of its <state> substates must itself be  
+ * complex, that is, one with either <state> or <parallel>
+ * children.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class Parallel extends TransitionTarget {
+	
+    /**
+     * The set of parallel state machines contained in this <parallel>.
+     */
+	private Set states;
+	
+	/**
+	 * Constructor
+	 */
+	public Parallel() {
+		this.states = new HashSet();
+	}
+	
+	/**
+	 * Get the set of parallel state machines contained in this Parallel.
+	 * 
+	 * @return Returns the state.
+	 */
+	public Set getStates() {
+		return states;
+	}
+	
+	/**
+	 * Add a State to the list of parallel state machines contained 
+	 * in this Parallel.
+	 * 
+	 * @param state The state to add.
+	 */
+	public void addState(State state) {
+		if (state != null) {
+			this.states.add(state);
+		}
+	}
+	
+}
+

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Parallel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Parallel.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Path.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Path.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Path.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Path.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,154 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.taglibs.rdc.scxml.SCXMLHelper;
+
+/**
+ * A helper class for this SCXML implementation that represents the
+ * location of an entity in the SCXML document.
+ * 
+ * @author Jaroslav Gergic 
+ */
+public class Path {
+
+	private List upSeg = new ArrayList();
+
+	private List downSeg = new ArrayList();
+
+	private State scope = null;
+
+	private boolean crossRegion = false;
+
+	Path(TransitionTarget source, TransitionTarget target) {
+		if (target == null) {
+			//a local "stay" transition
+			scope = (State) source;
+			//all segments remain empty
+		} else {
+			TransitionTarget tt = SCXMLHelper.getLCA(source, target);
+			if (tt != null) {
+				if (tt instanceof State) {
+					scope = (State) tt;
+				} else {
+					scope = tt.getParentState();
+				}
+				if (scope == source || scope == target) {
+					scope = scope.getParentState();
+				}
+			}
+			tt = source;
+			while (tt != scope) {
+				upSeg.add(tt);
+				if (tt instanceof State) {
+					State st = (State) tt;
+					if (st.isRegion()) {
+						crossRegion = true;
+					}
+				}
+				tt = tt.getParent();
+			}
+			tt = target;
+			while (tt != scope) {
+				downSeg.add(0, tt);
+				if (tt instanceof State) {
+					State st = (State) tt;
+					if (st.isRegion()) {
+						crossRegion = true;
+					}
+				}
+				tt = tt.getParent();
+			}
+		}
+	}
+
+	/**
+	 * @return true when the path crosses a region border(s)
+	 * @see State#isRegion()
+	 */
+	public boolean isCrossRegion() {
+		return crossRegion;
+	}
+
+	/**
+	 * @return a list of exited regions sorted bottom-up; no order defined for
+	 *         siblings
+	 */
+	public List getRegionsExited() {
+		LinkedList ll = new LinkedList();
+		Iterator i = upSeg.iterator();
+		while (i.hasNext()) {
+			Object o = i.next();
+			if (o instanceof State) {
+				State st = (State) o;
+				if (st.isRegion()) {
+					ll.add(st);
+				}
+			}
+		}
+		return ll;
+	}
+
+	/**
+	 * @return a list of entered regions sorted top-down; no order defined for
+	 *         siblings
+	 */
+	public List getRegionsEntered() {
+		LinkedList ll = new LinkedList();
+		Iterator i = downSeg.iterator();
+		while (i.hasNext()) {
+			Object o = i.next();
+			if (o instanceof State) {
+				State st = (State) o;
+				if (st.isRegion()) {
+					ll.add(st);
+				}
+			}
+		}
+		return ll;
+	}
+
+	/**
+	 * @return scope of the transition path, null means global transition (SCXML
+	 *         document level) Scope is the least state which is not being
+	 *         exited nor entered by the transition.
+	 */
+	public State getScope() {
+		return scope;
+	}
+
+	/**
+	 * @return upward segment of the path up to the scope
+	 */
+	public List getUpwardSegment() {
+		return upSeg;
+	}
+
+	/**
+	 * @return downward segment from the scope to the target
+	 */
+	public List getDownwardSegment() {
+		return downSeg;
+	}
+}
+

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Path.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Path.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/SCXML.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/SCXML.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/SCXML.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/SCXML.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,259 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import org.apache.taglibs.rdc.RDCUtils;
+import org.apache.taglibs.rdc.scxml.Context;
+import org.apache.taglibs.rdc.scxml.NotificationRegistry;
+import org.apache.taglibs.rdc.scxml.Observable;
+import org.apache.taglibs.rdc.scxml.SCXMLListener;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <scxml> root element, and serves as the "document
+ * root". It is also associated with the root Context, via which
+ * the SCXMLExecutor may access and the query state of the host 
+ * environment.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class SCXML implements Observable {
+
+    /**
+     * The SCXML XMLNS
+     */
+	public static final String XMLNS = "http://www.w3.org/2005/01/SCXML";
+	
+    /**
+     * The xmlns attribute on the root <smxml> element.
+     * This must match XMLNS above.
+     */
+	private String xmlns;
+	
+    /**
+     * The SCXML version of this document.
+     */
+	private String version;
+
+    /**
+     * The initial State for the SCXML executor
+     */
+	private State initialState;
+
+    /**
+     * The initial state ID (used by XML Digester only)
+     */
+	private transient String initialstate;
+
+	/**
+     * The immediate child states of this SCXML document root
+     */
+    private Map states;
+    
+    /**
+     * The notification registry
+     */
+    private NotificationRegistry notifReg;
+
+	/**
+     * A global map of all States and Parallels associated with this
+     * state machine, keyed by their id 
+     */
+    private Map targets;
+
+	/**
+	 * The root Context which interfaces with the host environment
+	 */
+	private Context rootContext;
+	
+	/**
+	 * Constructor
+	 */
+	public SCXML() { 
+		this.states = new HashMap();
+		this.notifReg = new NotificationRegistry();
+		this.targets = new HashMap();
+	}
+	
+	/**
+	 * Get the initial State
+	 * 
+	 * @return Returns the initialstate.
+	 */
+	public State getInitialState() {
+		return initialState;
+	}
+	
+	/**
+	 * Set the initial State
+	 * 
+	 * @param initialstate The initialstate to set.
+	 */
+	public void setInitialState(State initialState) {
+		this.initialState = initialState;
+	}
+	
+	/**
+	 * Get the children states
+	 * 
+	 * @return Returns the states.
+	 */
+	public Map getStates() {
+		return states;
+	}
+	
+	/**
+	 * Add a child state
+	 * 
+	 * @param state The state to be added to the states Map.
+	 */
+	public void addState(State state) {
+		states.put(state.getId(), state);
+	}
+	
+	/**
+	 * Get the targets map, whichis a Map of all States and Parallels 
+	 * associated with this state machine, keyed by their id
+	 * 
+	 * @return Returns the targets.
+	 */
+	public Map getTargets() {
+		return targets;
+	}
+	
+	/**
+	 * Add a target to this SCXML document
+	 * 
+	 * @param target The target to be added to the targets Map.
+	 */
+	public void addTarget(TransitionTarget target) {
+		String id = target.getId();
+		if (!RDCUtils.isStringEmpty(id)) {
+			// Target is not anonymous, so makes sense to map it
+			targets.put(id, target);
+		}
+	}	
+	
+	/**
+	 * Get the SCXML document version
+	 * 
+	 * @return Returns the version.
+	 */
+	public String getVersion() {
+		return version;
+	}
+	
+	/**
+	 * Set the SCXML document version
+	 * 
+	 * @param version The version to set.
+	 */
+	public void setVersion(String version) {
+		this.version = version;
+	}
+	
+	/**
+	 * Get the xmlns of this SCXML document
+	 * 
+	 * @return Returns the xmlns.
+	 */
+	public String getXmlns() {
+		return xmlns;
+	}
+	
+	/**
+	 * Set the xmlns of this SCXML document
+	 * 
+	 * @param xmlns The xmlns to set.
+	 */
+	public void setXmlns(String xmlns) {
+		this.xmlns = xmlns;
+	}
+
+	/**
+	 * Get the notification registry
+	 * 
+	 * @return Returns the notifReg.
+	 */
+	public NotificationRegistry getNotificationRegistry() {
+		return notifReg;
+	}
+	
+	/**
+	 * Get the ID of the initial state
+	 * 
+	 * @return Returns the initial state ID (used by XML Digester only).
+	 * @see #getInitialState()
+	 */
+	public String getInitialstate() {
+		return initialstate;
+	}
+	
+	/**
+	 * Set the ID of the initial state
+	 * 
+	 * @param initialstate The initial state ID (used by XML Digester only).
+	 * @see #setInitialState(State)
+	 */
+	public void setInitialstate(String initialstate) {
+		this.initialstate = initialstate;
+	}
+	
+	/**
+	 * Get the root Context for this document
+	 * 
+	 * @return Returns the rootContext.
+	 */
+	public Context getRootContext() {
+		return rootContext;
+	}
+	
+	/**
+	 * Set the root Context for this document
+	 * 
+	 * @param rootContext The rootContext to set.
+	 */
+	public void setRootContext(Context rootContext) {
+		this.rootContext = rootContext;
+	}
+
+    /**
+     * Register a listener to this document root
+     * 
+     * @param lst The SCXMLListener to add
+     * Remarks: Only valid if StateMachine is non null!
+     */
+    public void addListener(SCXMLListener lst) {
+        notifReg.addListener(this, lst);
+    }
+
+    /**
+     * Deregister a listener from this document root
+     * 
+     * @param lst The SCXMLListener to remove
+     * Remarks: Only valid if StateMachine is non null!
+     */
+    public void removeListener(SCXMLListener lst) {
+    	notifReg.removeListener(this, lst);
+    }
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/SCXML.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/SCXML.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Send.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Send.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Send.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Send.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,194 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <send> SCXML element.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class Send extends Action {
+	
+    /**
+     * The ID of the send message
+     */
+	private String sendId;
+	
+	/**
+     * An expression returning the target location of the event
+     */
+	private String target;
+
+    /**
+     * The type of the Event I/O Processor that the event
+	 * should be dispatched to
+     */
+	private String targetType;
+
+    /**
+     * The event is dispatched after the delay interval elapses
+     */
+	private String delay;
+
+    /**
+     * The data containing information which may be used by the 
+     * implementing platform to configure the event processor
+     */
+	private String hints;
+
+    /**
+     * The namelist to the sent
+     */
+	private String namelist;
+
+    /**
+     * The list of external nodes associated with this <send> element
+     */
+	private List externalNodes;
+
+    /**
+     * The type of event being generated
+     */
+	private String event;
+	
+	/**
+	 * Constructor
+	 */
+	public Send() {
+		super();
+		this.externalNodes = new ArrayList();
+	}
+	
+	/**
+	 * @return Returns the delay.
+	 */
+	public String getDelay() {
+		return delay;
+	}
+	
+	/**
+	 * @param delay The delay to set.
+	 */
+	public void setDelay(String delay) {
+		this.delay = delay;
+	}
+	
+	/**
+	 * @return Returns the externalnode.
+	 */
+	public List getExternalNodes() {
+		return externalNodes;
+	}
+	
+	/**
+	 * @param externalnode The externalnode to set.
+	 */
+	public void setExternalNodes(List externalNodes) {
+		this.externalNodes = externalNodes;
+	}
+	
+	/**
+	 * @return Returns the hints.
+	 */
+	public String getHints() {
+		return hints;
+	}
+	
+	/**
+	 * @param hints The hints to set.
+	 */
+	public void setHints(String hints) {
+		this.hints = hints;
+	}
+	
+	/**
+	 * @return Returns the namelist.
+	 */
+	public String getNamelist() {
+		return namelist;
+	}
+	
+	/**
+	 * @param namelist The namelist to set.
+	 */
+	public void setNamelist(String namelist) {
+		this.namelist = namelist;
+	}
+	
+	/**
+	 * @return Returns the sendId.
+	 */
+	public String getSendId() {
+		return sendId;
+	}
+	
+	/**
+	 * @param sendId The sendId to set.
+	 */
+	public void setSendId(String sendId) {
+		this.sendId = sendId;
+	}
+	
+	/**
+	 * @return Returns the target.
+	 */
+	public String getTarget() {
+		return target;
+	}
+	
+	/**
+	 * @param target The target to set.
+	 */
+	public void setTarget(String target) {
+		this.target = target;
+	}
+	
+	/**
+	 * @return Returns the targetType.
+	 */
+	public String getTargetType() {
+		return targetType;
+	}
+	
+	/**
+	 * @param targetType The targetType to set.
+	 */
+	public void setTargetType(String targetType) {
+		this.targetType = targetType;
+	}
+
+	/**
+	 * @param event The event to set.
+	 */
+	public void setEvent(String event) {
+		this.event = event;
+	}
+
+	/**
+	 * @return Returns the event.
+	 */
+	public String getEvent() {
+		return event;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Send.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Send.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/State.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/State.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/State.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/State.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,331 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.taglibs.rdc.scxml.Context;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <state> SCXML element.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class State extends TransitionTarget {
+
+	/**
+	 * The Context in which any expressions will be evaluated
+	 */
+	private Context context;
+
+	/**
+	 * The Map containing immediate children of this State, keyed by 
+	 * their IDs. Incompatible with the parallel property.
+	 */
+	private Map children;
+
+	/**
+	 * The Parallel child, which defines a set of parallel substates. 
+	 * May occur 0 or 1 times. Incompatible with the state property.
+	 */
+	private Parallel parallel;
+
+	/**
+	 * Boolean property indicating whether this is a final state or not. 
+	 * Default value is false . Final states may not have substates or 
+	 * outgoing transitions.
+	 */
+	private boolean isFinal;
+
+	/**
+	 * A child which identifies initial state for state machines that 
+	 * have substates.
+	 */
+	private Initial initial;
+
+	/**
+	 * A map of outgoing Transitions from this state
+	 */
+	private Map transitions;
+
+	/**
+	 * List of history states owned by a given state (applies to non-leaf
+	 * states)
+	 */
+	private List history;
+	
+	/**
+	 * Applies to composite states only. If one of its final children is 
+	 * active, its parent is marked done. This property is reset upon
+	 * re-entry.
+	 */
+	private boolean done = false;
+
+	/**
+	 * Constructor
+	 */
+	public State() {
+		this.children = new HashMap();
+		this.transitions = new HashMap();
+		this.history = new ArrayList();
+	}
+
+	/**
+	 * Get the Context
+	 * 
+	 * @return Returns the context.
+	 */
+	public Context getContext() {
+		return context;
+	}
+
+	/**
+	 * Set the Context
+	 * 
+	 * @param context
+	 *            The context to set.
+	 */
+	public void setContext(Context context) {
+		this.context = context;
+	}
+
+	/**
+	 * Is this state a "final" state
+	 * 
+	 * @return Returns the isFinal.
+	 */
+	public boolean getIsFinal() {
+		return isFinal;
+	}
+
+	/**
+	 * Set whether this is a "final" state
+	 * 
+	 * @param isFinal
+	 *            The isFinal to set.
+	 */
+	public void setIsFinal(boolean isFinal) {
+		this.isFinal = isFinal;
+	}
+
+	/**
+	 * Get the Parallel child (may be null)
+	 * 
+	 * @return Returns the parallel.
+	 */
+	public Parallel getParallel() {
+		return parallel;
+	}
+
+	/**
+	 * Set the Parallel child 
+	 * 
+	 * @param parallel
+	 *            The parallel to set.
+	 */
+	public void setParallel(Parallel parallel) {
+		this.parallel = parallel;
+	}
+
+	/**
+	 * Get the initial state
+	 * 
+	 * @return Returns the target.
+	 */
+	public Initial getInitial() {
+		return initial;
+	}
+
+	/**
+	 * Set the initial state
+	 * 
+	 * @param target
+	 *            The target to set.
+	 */
+	public void setInitial(Initial target) {
+		this.initial = target;
+	}
+
+	/**
+	 * Get the map of all outgoing transitions from this state
+	 * 
+	 * @return Returns the transitions Map.
+	 */
+	public Map getTransitions() {
+		return transitions;
+	}
+
+	/**
+	 * Get the map of all outgoing transitions from this state, which
+	 * will be fired on the given event.
+	 * 
+	 * @return Returns the transition for given event.
+	 */
+	public Transition getTransition(String event) {
+		return (Transition) transitions.get(event);
+	}
+
+	/**
+	 * Add a transition to the map of all outgoing transitions for
+	 * this state
+	 * 
+	 * @param transition
+	 *            The transitions to set.
+	 */
+	public void addTransition(Transition transition) {
+		String event = transition.getEvent();
+		if (!transitions.containsKey(event)) {
+			ArrayList eventTransitions = new ArrayList();
+			eventTransitions.add(transition);
+			transitions.put(event, eventTransitions);
+		} else {
+			((List) transitions.get(event)).add(transition);
+		}
+	}
+
+	/**
+	 * Get the map of child states (may be empty)
+	 * 
+	 * @return Returns the children.
+	 */
+	public Map getChildren() {
+		return children;
+	}
+
+	/**
+	 * Add a child state
+	 * 
+	 * @param state
+	 *            a child state
+	 */
+	public void addChild(State state) {
+		this.children.put(state.getId(), state);
+		state.setParent(this);
+	}
+
+	/**
+	 * Get the outgoing transitions for this state as a java.util.List
+	 * 
+	 * @return Returns the transitions (as a list). TODO - Check in next
+	 *         iteration whether both methods need to be retained.
+	 */
+	public List getTransitionsList() {
+		// Each call creates a new List, this will change once TO-DO is handled
+		List transitionsList = new ArrayList();
+		Iterator iter = transitions.keySet().iterator();
+		while (iter.hasNext()) {
+			transitionsList.addAll((List) transitions.get(iter.next()));
+		}
+		return transitionsList;
+	}
+
+	/**
+	 * This method is used by XML digester
+	 * 
+	 * @param h
+	 *            History pseudo state
+	 */
+	public void addHistory(History h) {
+		history.add(h);
+	}
+
+	/**
+	 * Does this state have a history pseudo state
+	 * 
+	 * @return true if a given state contains at least one history pseudo state
+	 */
+	public boolean hasHistory() {
+		return (!history.isEmpty());
+	}
+
+	/**
+	 * Get the list of history pseudo states for this state
+	 * 
+	 * @return a list of all history pseudo states contained by a given state
+	 *         (can be empty)
+	 * @see #hasHistory()
+	 */
+	public List getHistory() {
+		return history;
+	}
+
+	/**
+	 * Check whether this is a simple (leaf) state (UML terminology) 
+	 *  
+	 * @return true if this is a simple state, otherwise false
+	 */
+	public final boolean isSimple() {
+		return (parallel == null && children.isEmpty()) ? true : false;
+	}
+
+	/** 
+	 * Check whether this is a composite state (UML terminology) 
+	 *
+	 * @return true if this is a composite state, otherwise false
+	 */
+	public final boolean isComposite() {
+		return (parallel == null && children.isEmpty()) ? false : true;
+	}
+
+	/**
+	 * Checks whether it is a region state (directly nested to parallel - UML
+	 * terminology)
+	 * 
+	 * @return true if this is a region state, otherwise false
+	 * @see Parallel
+	 */
+	public final boolean isRegion() {
+		return (getParent() instanceof Parallel) ? true : false;
+	}
+
+	/**
+	 * Checks whether it is a orthogonal state, that is, it owns a parallel
+	 * (UML terminology)
+	 * 
+	 * @return true if this is a orthogonal state, otherwise false
+	 */
+	public final boolean isOrthogonal() {
+		return (parallel != null) ? true : false;
+	}
+	
+	/**
+	 * In case this is a parallel state, check if one its final states
+	 * is active.
+	 * 
+	 * @return Returns the done.
+	 */
+	public boolean isDone() {
+		return done;
+	}
+	
+	/**
+	 * Update the done property, which is set if this is a parallel state,
+	 * and one its final states is active.
+	 * 
+	 * @param done The done to set.
+	 */
+	public void setDone(boolean done) {
+		this.done = done;
+	}
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/State.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/State.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Transition.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Transition.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Transition.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Transition.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,217 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import org.apache.taglibs.rdc.scxml.NotificationRegistry;
+import org.apache.taglibs.rdc.scxml.Observable;
+import org.apache.taglibs.rdc.scxml.SCXMLListener;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * <transition> SCXML element. Transition rules are triggered 
+ * by "events" and conditionalized via 
+ * "guard-conditions".
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class Transition extends Executable implements Observable {
+	
+    /**
+     * Property that specifies the trigger for this transition.
+     */
+	private String event;
+
+    /**
+     * Optional guard condition.
+     */
+	private String cond;
+
+    /**
+     * Optional property that specifies the new state or parallel 
+     * element to transition to. May be specified by reference or in-line.
+     */
+	private TransitionTarget target;
+
+    /**
+     * The transition target ID (used by XML Digester only)
+     */
+	private String next;
+	
+    /**
+     * The notification registry.
+     */
+    private NotificationRegistry notifReg;
+
+    /**
+     * The path for this transition.
+     * @see Path
+     */    
+	private Path path = null;
+	
+	/**
+	 * Constructor
+	 */
+    public Transition() {
+    	super();
+    }
+
+    /**
+     * Register a listener to this document root
+     * 
+     * @param lst The SCXMLListener to add
+     */
+    public void addListener(SCXMLListener lst) {
+        notifReg.addListener(this, lst);
+    }
+
+    /**
+     * Deregister a listener from this document root
+     * 
+     * @param lst The SCXMLListener to remove
+     */
+    public void removeListener(SCXMLListener lst) {
+        notifReg.removeListener(this, lst);
+    }
+
+	/**
+	 * Get the guard condition (may be null)
+	 * 
+	 * @return Returns the cond.
+	 */
+	public String getCond() {
+		return cond;
+	}
+	
+	/**
+	 * Set the guard condition
+	 * 
+	 * @param cond The cond to set.
+	 */
+	public void setCond(String cond) {
+		this.cond = cond;
+	}
+	
+	/**
+	 * Get the event that will trigger this transition (pending 
+	 * evaluation of the guard condition in favor)
+	 * 
+	 * @return Returns the event.
+	 */
+	public String getEvent() {
+		return event;
+	}
+	
+	/**
+	 * Set the event that will trigger this transition (pending 
+	 * evaluation of the guard condition in favor)
+	 * 
+	 * @param event The event to set.
+	 */
+	public void setEvent(String event) {
+		this.event = event;
+	}
+	
+	/**
+	 * Get the transition target (may be null)
+	 * 
+	 * @return Returns the target as specified in SCXML markup.
+	 * <p>Remarks: Is <code>null</code> for &quot;stay&quot; transitions.
+	 *  Returns parent (the source node) for &quot;self&quot; transitions.</p>
+	 */
+	public TransitionTarget getTarget() {
+		return target;
+	}
+	
+	/**
+	 * Get the runtime transition target, which always resolves to
+	 * a TransitionTarget instance.
+	 * 
+	 * @return Returns the actual target of a transition at runtime.
+	 * <p>Remarks: For both the &quot;stay&quot; and &quot;self&quot; 
+	 * transitions it returns parent (the source node). This method should 
+	 * never return <code>null</code>.</p>
+	 */
+	public TransitionTarget getRuntimeTarget() {
+		return (target != null) ? target : parent;
+	}
+
+	
+	/**
+	 * Set the transition target
+	 * 
+	 * @param target The target to set.
+	 */
+	public void setTarget(TransitionTarget target) {
+		this.target = target;
+	}
+	
+	/**
+	 * Get the ID of the transition target (may be null, if, for example,
+	 * the target is specified inline)
+	 * 
+	 * @return Returns the transition target ID (used by SCXML Digester only).
+	 * @see #getTarget()
+	 */
+	public String getNext() {
+		return next;
+	}
+	
+	/**
+	 * Set the transition target by specifying its ID
+	 * 
+	 * @param next The the transition target ID (used by SCXML Digester only).
+	 * @see #setTarget(TransitionTarget)
+	 */
+	public void setNext(String next) {
+		this.next = next;
+	}
+	
+	/**
+	 * Supply this Transition object a handle to the notification
+	 * registry. Called by the Digester after instantiation.
+	 * 
+	 * @param reg The notification registry
+	 */
+	public void setNotificationRegistry(NotificationRegistry reg) {
+		notifReg = reg;
+	}
+	
+	/**
+	 * Get the notification registry.
+	 * 
+	 * @return The notification registry.
+	 */
+	public NotificationRegistry getNotificationRegistry() {
+		return notifReg;
+	}
+
+	/**
+	 * Get the path of this transiton.
+	 * 
+	 * @see Path
+	 * @return returns the transition path
+	 */
+	public Path getPath() {
+		if(path == null) {
+			path = new Path(getParent(), getTarget());
+		}
+		return path;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Transition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Transition.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/TransitionTarget.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/TransitionTarget.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/TransitionTarget.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/TransitionTarget.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,201 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+import org.apache.taglibs.rdc.scxml.NotificationRegistry;
+import org.apache.taglibs.rdc.scxml.Observable;
+import org.apache.taglibs.rdc.scxml.SCXMLListener;
+
+/**
+ * An abstract base class for elements in SCXML that can serve as a
+ * &lt;target&gt; for a &lt;transition&gt;, such as State or Parallel.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public abstract class TransitionTarget implements Observable {
+	
+    /**
+     * Identifier for this transition target. Other parts of the SCXML
+     * document may refer to this &lt;state&gt; using this ID.
+     */
+	private String id;
+
+    /**
+     * Optional property holding executable content to be run upon
+     * entering this transition target.
+     */
+	private OnEntry onEntry;
+
+    /**
+     * Optional property holding executable content to be run upon
+     * exiting this transition target.
+     */
+	private OnExit onExit;
+
+	/**
+     * The parent of this transition target (may be null, if the parent
+     * is the SCXML document root)
+     */
+    private TransitionTarget parent;
+	
+    /**
+     * The notification registry
+     */
+    private NotificationRegistry notifReg;
+
+    /**
+     * Constructor
+     */
+    public TransitionTarget() {
+    	super();
+    	onEntry = new OnEntry(); //empty defaults
+    	onEntry.setParent(this);
+    	onExit = new OnExit();   //empty defaults
+    	onExit.setParent(this);
+    }
+
+    /**
+     * Register a listener to this document root
+     * 
+     * @param lst The SCXMLListener to add
+     */
+    public void addListener(SCXMLListener lst) {
+        notifReg.addListener(this, lst);
+    }
+
+    /**
+     * Deregister a listener from this document root
+     * 
+     * @param lst The SCXMLListener to remove
+     */
+    public void removeListener(SCXMLListener lst) {
+    	notifReg.removeListener(this, lst);
+    }
+
+	/**
+	 * Supply this TransitionTarget object a handle to the notification
+	 * registry. Called by the Digester after instantiation.
+	 * 
+	 * @param reg The notification registry
+	 */
+	public void setNotificationRegistry(NotificationRegistry reg) {
+		notifReg = reg;
+	}
+	
+	/**
+	 * Get the notification registry.
+	 * 
+	 * @return The notification registry.
+	 */
+	public NotificationRegistry getNotificationRegistry() {
+		return notifReg;
+	}
+	
+	/**
+	 * Get the identifier for this transition target (may be null).
+	 * 
+	 * @return Returns the id.
+	 */
+	public String getId() {
+		return id;
+	}
+	
+	/**
+	 * Set the identifier for this transition target
+	 * 
+	 * @param id The id to set.
+	 */
+	public void setId(String id) {
+		this.id = id;
+	}
+	
+	/**
+	 * Get the onentry property.
+	 * 
+	 * @return Returns the onEntry.
+	 */
+	public OnEntry getOnEntry() {
+		return onEntry;
+	}
+	
+	/**
+	 * Set the onentry property.
+	 * 
+	 * @param onEntry The onEntry to set.
+	 */
+	public void setOnEntry(OnEntry onentry) {
+		this.onEntry = onentry;
+	}
+	
+	/**
+	 * Get the onexit property.
+	 * 
+	 * @return Returns the onExit.
+	 */
+	public OnExit getOnExit() {
+		return onExit;
+	}
+	
+	/**
+	 * Set the onexit property.
+	 * 
+	 * @param onExit The onExit to set.
+	 */
+	public void setOnExit(OnExit onexit) {
+		this.onExit = onexit;
+	}
+	
+	/**
+	 * Get the parent TransitionTarget
+	 * 
+	 * @return Returns the parent state 
+	 * (null if parent is &lt;scxml&gt; element)
+	 */
+	public TransitionTarget getParent() {
+		return parent;
+	}
+	
+	/**
+	 * Set the parent TransitionTarget
+	 * 
+	 * @param parent The parent state to set
+	 */
+	public void setParent(TransitionTarget parent) {
+		this.parent = parent;
+	}
+
+	/**
+	 * Get the parent State
+	 * 
+	 * @return The parent State
+	 */
+	public State getParentState() {
+		TransitionTarget tt = this.getParent();
+		if (tt == null) {
+			return null;
+		} else {
+			if (tt instanceof State) {
+				return (State) tt;
+			} else { //tt is Parallel
+				return tt.getParentState();
+			}
+		}
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/TransitionTarget.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/TransitionTarget.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Var.java
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Var.java?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Var.java (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Var.java Fri Jul 29 18:28:30 2005
@@ -0,0 +1,84 @@
+/*
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ */
+package org.apache.taglibs.rdc.scxml.model;
+
+/**
+ * The class in this SCXML object model that corresponds to the
+ * &lt;var&gt; SCXML element.
+ * 
+ * @author Rahul Akolkar
+ * @author Jaroslav Gergic
+ */
+public class Var extends Action {
+	
+    /**
+     * The name of the variable to be created
+     */
+	private String name;
+
+    /**
+     * The expression that evaluates to the initial value of the variable
+     */
+	private String expr;
+	
+	/**
+	 * Constructor
+	 */
+	public Var() {
+		super();
+	}
+	
+	/**
+	 * Get the expression that evaluates to the initial value 
+	 * of the variable
+	 * 
+	 * @return Returns the expr.
+	 */
+	public String getExpr() {
+		return expr;
+	}
+	
+	/**
+	 * Set the expression that evaluates to the initial value 
+	 * of the variable
+	 * 
+	 * @param expr The expr to set.
+	 */
+	public void setExpr(String expr) {
+		this.expr = expr;
+	}
+	
+	/**
+	 * Get the name of the (new) variable.
+	 * 
+	 * @return Returns the name.
+	 */
+	public String getName() {
+		return name;
+	}
+	
+	/**
+	 * Set the name of the (new) variable.
+	 * 
+	 * @param name The name to set.
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+}

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Var.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/Var.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/package.html
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/package.html?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/package.html (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/package.html Fri Jul 29 18:28:30 2005
@@ -0,0 +1,29 @@
+<html>
+<!-- 
+ *
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ *
+ *
+-->
+<head>
+</head>
+<body>
+
+  <p>A collection of classes needed to model SCXML documents.</p>
+  
+</body>
+</html>

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/package.html
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/model/package.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/package.html
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/package.html?rev=226454&view=auto
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/package.html (added)
+++ jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/package.html Fri Jul 29 18:28:30 2005
@@ -0,0 +1,30 @@
+<html>
+<!-- 
+ *
+ *    
+ *   Copyright 2004 The Apache Software Foundation.
+ *
+ *  Licensed 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.
+ *
+ *
+ *
+-->
+<head>
+</head>
+<body>
+
+  <p>The core classes for the digestion and interpretation
+     of SCXML documents.</p>
+  
+</body>
+</html>

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/package.html
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: jakarta/taglibs/proper/rdc/trunk/src/org/apache/taglibs/rdc/scxml/package.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Modified: jakarta/taglibs/proper/rdc/trunk/xml/intro.xml
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/xml/intro.xml?rev=226454&r1=226453&r2=226454&view=diff
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/xml/intro.xml (original)
+++ jakarta/taglibs/proper/rdc/trunk/xml/intro.xml Fri Jul 29 18:28:30 2005
@@ -115,6 +115,10 @@
   <section name="RDC News" href="News">
 
     <news>
+      <newsitem date="07/29/2005">
+        The RDC tag library has provided an alpha version of an SCXML engine, and a 
+        SCXML dialog management strategy for the RDC group container.
+      </newsitem>
       <newsitem date="07/20/2005">
         The RDC tag library has graduated out of Taglibs sandbox with a 1.0 release.
       </newsitem>

Modified: jakarta/taglibs/proper/rdc/trunk/xml/rdc.xml
URL: http://svn.apache.org/viewcvs/jakarta/taglibs/proper/rdc/trunk/xml/rdc.xml?rev=226454&r1=226453&r2=226454&view=diff
==============================================================================
--- jakarta/taglibs/proper/rdc/trunk/xml/rdc.xml (original)
+++ jakarta/taglibs/proper/rdc/trunk/xml/rdc.xml Fri Jul 29 18:28:30 2005
@@ -31,7 +31,7 @@
   -->
   <taglib>
     <!-- Version number of this tagib -->
-    <tlib-version>1.0.0</tlib-version>
+    <tlib-version>Post 1.0 Development</tlib-version>
     <!-- Minimum version of JSP spec required -->
     <jsp-version>2.0</jsp-version>
     <!-- jakarta-taglib name of this tag library -->
@@ -1161,6 +1161,48 @@
         </example>
       </tag>
     </tagtoc></taglib>
+
+    <revision release="Post 1.0 Development" date="07/29/2005">
+      <description>
+        This version adds an alpha implementation of a SCXML (State Chart XML)
+        engine. An alpha version of a SCXML dialog management strategy for the group
+        container is also provided.
+      </description>
+      <section name="Additions:">
+        <item>
+              <b>SCXML Engine</b> - The W3C Voice Browser Working Group 
+              recently announced the publication of the first Working
+              Draft of State Chart XML. SCXML provides a generic 
+              state-machine based execution environment based on CCXML 
+              and Harel State Tables. The SCXML WD is 
+              <a href="http://www.w3.org/TR/2005/WD-scxml-20050705/">here</a>.
+              The RDC tag library has included an alpha of a SCXML engine 
+              implementation.<br/>
+              <dir>
+                The SCXML engine implementation is under development.
+                The major items that are yet unimplemented are:
+                <ul>
+                  <li>Multiple (simultaneous) targets for a single 
+                    transition (Section 3.3.1)</li>
+                  <li>Outgoing transitions from a parallel (Section 3.4)</li>
+                  <li>JOIN (Section 4.3)</li>
+                  <li>SYNCH (Section 4.4)</li>
+                </ul>
+              </dir>
+        </item>
+        <item>
+              <b>SCXML Dialog Management Strategy</b> - An alpha version of 
+              a dialog management strategy for the group container that works 
+              off of a SCXML configuration document is also provided.
+              <dir>
+                A demonstrative example in rdc-examples.war is:<br/>
+                <ul>
+                  <li>scxml-dialog-test.jsp</li>
+                </ul>
+              </dir>
+        </item>
+      </section>
+    </revision>
 
     <revision release="1.0" date="07/20/2005">
       <description>



---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-help@jakarta.apache.org