Author: rahul
Date: Fri Jun 15 14:43:38 2007
New Revision: 547799

URL: http://svn.apache.org/viewvc?view=rev&rev=547799
Log:
Provide a SCXMLListener abstract adapter class
SCXML-46

Thanks to Michael Heuer <heuermh AT acm DOT org>.
Added Michael to the list of contributors.

Added:
    
jakarta/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml/env/AbstractSCXMLListener.java
   (with props)
    
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/AbstractSCXMLListenerTest.java
   (with props)
Modified:
    jakarta/commons/proper/scxml/trunk/pom.xml
    jakarta/commons/proper/scxml/trunk/project.xml
    
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/EnvTestSuite.java

Modified: jakarta/commons/proper/scxml/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/pom.xml?view=diff&rev=547799&r1=547798&r2=547799
==============================================================================
--- jakarta/commons/proper/scxml/trunk/pom.xml (original)
+++ jakarta/commons/proper/scxml/trunk/pom.xml Fri Jun 15 14:43:38 2007
@@ -78,6 +78,9 @@
     <contributor>
       <name>Nestor Urquiza</name>
     </contributor>
+    <contributor>
+      <name>Michael Heuer</name>
+    </contributor>
   </contributors>
 
   <dependencies>

Modified: jakarta/commons/proper/scxml/trunk/project.xml
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/project.xml?view=diff&rev=547799&r1=547798&r2=547799
==============================================================================
--- jakarta/commons/proper/scxml/trunk/project.xml (original)
+++ jakarta/commons/proper/scxml/trunk/project.xml Fri Jun 15 14:43:38 2007
@@ -113,6 +113,9 @@
     <contributor>
       <name>Nestor Urquiza</name>
     </contributor>
+    <contributor>
+      <name>Michael Heuer</name>
+    </contributor>
   </contributors>
   
   <dependencies>

Added: 
jakarta/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml/env/AbstractSCXMLListener.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml/env/AbstractSCXMLListener.java?view=auto&rev=547799
==============================================================================
--- 
jakarta/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml/env/AbstractSCXMLListener.java
 (added)
+++ 
jakarta/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml/env/AbstractSCXMLListener.java
 Fri Jun 15 14:43:38 2007
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+package org.apache.commons.scxml.env;
+
+import org.apache.commons.scxml.SCXMLListener;
+import org.apache.commons.scxml.model.Transition;
+import org.apache.commons.scxml.model.TransitionTarget;
+
+/**
+ * An abstract adapter class for the <code>SXCMLListener</code> interface.
+ * This class exists as a convenience for creating listener objects, and as
+ * such all the methods in this class are empty.
+ */
+public abstract class AbstractSCXMLListener implements SCXMLListener {
+
+    /**
+     * @see SCXMLListener#onEntry(TransitionTarget)
+     */
+    public void onEntry(final TransitionTarget state) {
+        // empty
+    }
+
+    /**
+     * @see SCXMLListener#onExit(TransitionTarget)
+     */
+    public void onExit(final TransitionTarget state) {
+        // empty
+    }
+
+    /**
+* @see SCXMLListener#onTransition(TransitionTarget,TransitionTarget,Transition)
+     */
+    public void onTransition(final TransitionTarget from,
+            final TransitionTarget to, final Transition transition) {
+        // empty
+    }
+
+}
+

Propchange: 
jakarta/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml/env/AbstractSCXMLListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/scxml/trunk/src/main/java/org/apache/commons/scxml/env/AbstractSCXMLListener.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/AbstractSCXMLListenerTest.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/AbstractSCXMLListenerTest.java?view=auto&rev=547799
==============================================================================
--- 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/AbstractSCXMLListenerTest.java
 (added)
+++ 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/AbstractSCXMLListenerTest.java
 Fri Jun 15 14:43:38 2007
@@ -0,0 +1,179 @@
+/*
+ * 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.
+ */
+package org.apache.commons.scxml.env;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.apache.commons.scxml.SCXMLListener;
+import org.apache.commons.scxml.model.State;
+import org.apache.commons.scxml.model.Transition;
+import org.apache.commons.scxml.model.TransitionTarget;
+
+/**
+ * Unit tests [EMAIL PROTECTED] 
org.apache.commons.scxml.AbstractSCXMLListener}.
+ */
+public class AbstractSCXMLListenerTest extends TestCase {
+    /**
+     * Construct a new instance of AbstractSCXMLListenerTest with the 
specified name
+     */
+    public AbstractSCXMLListenerTest(String name) {
+        super(name);
+    }
+
+    // Test data
+    private TransitionTarget to;
+    private TransitionTarget from;
+    private Transition transition;
+    private boolean heardOnEntry;
+    private boolean heardOnExit;
+    private boolean heardOnTransition;
+
+    /**
+     * Set up instance variables required by this test case.
+     */
+    public void setUp() {
+        to = new State();
+        from = new State();
+        transition = new Transition();
+        heardOnEntry = false;
+        heardOnExit = false;
+        heardOnTransition = false;
+    }
+
+    /**
+     * Tear down instance variables required by this test case.
+     */
+    public void tearDown() {
+        to = null;
+        from = null;
+        transition = null;
+    }
+
+    public void testAbstractSCXMLListener0() {
+        SCXMLListener listener0 = new AbstractSCXMLListener() {
+                /**
+                 * @see SCXMLListener#onEntry(TransitionTarget)
+                 */
+                public void onEntry(TransitionTarget state) {
+                    heardOnEntry = true;
+                }
+
+                /**
+                 * @see SCXMLListener#onExit(TransitionTarget)
+                 */
+                public void onExit(TransitionTarget state) {
+                    heardOnExit = true;
+                }
+
+                /**
+                 * @see 
SCXMLListener#onTransition(TransitionTarget,TransitionTarget,Transition)
+                 */
+                public void onTransition(TransitionTarget from, 
TransitionTarget to,
+                                         Transition transition) {
+                    heardOnTransition = true;
+                }
+            };
+
+        assertFalse("heardOnEntry == false", heardOnEntry);
+        assertFalse("heardOnExit == false", heardOnExit);
+        assertFalse("heardOnTransition == false", heardOnTransition);
+        listener0.onEntry(to);
+        listener0.onExit(to);
+        listener0.onTransition(from, to, transition);
+        assertTrue("heardOnEntry", heardOnEntry);
+        assertTrue("heardOnExit", heardOnExit);
+        assertTrue("heardOnExit", heardOnTransition);
+    }
+
+    public void testAbstractSCXMLListener1() {
+        SCXMLListener listener1 = new AbstractSCXMLListener() {
+                /**
+                 * @see SCXMLListener#onEntry(TransitionTarget)
+                 */
+                public void onEntry(TransitionTarget state) {
+                    heardOnEntry = true;
+                }
+
+                /**
+                 * @see SCXMLListener#onExit(TransitionTarget)
+                 */
+                public void onExit(TransitionTarget state) {
+                    heardOnExit = true;
+                }
+            };
+
+        assertFalse("heardOnEntry == false", heardOnEntry);
+        assertFalse("heardOnExit == false", heardOnExit);
+        assertFalse("heardOnTransition == false", heardOnTransition);
+        listener1.onEntry(to);
+        listener1.onExit(to);
+        listener1.onTransition(from, to, transition);
+        assertTrue("heardOnEntry", heardOnEntry);
+        assertTrue("heardOnExit", heardOnExit);
+        assertFalse("heardOnTransition == false", heardOnTransition);
+    }
+
+    public void testAbstractSCXMLListener2() {
+        SCXMLListener listener2 = new AbstractSCXMLListener() {
+                /**
+                 * @see SCXMLListener#onEntry(TransitionTarget)
+                 */
+                public void onEntry(TransitionTarget state) {
+                    heardOnEntry = true;
+                }
+            };
+
+        assertFalse("heardOnEntry == false", heardOnEntry);
+        assertFalse("heardOnExit == false", heardOnExit);
+        assertFalse("heardOnTransition == false", heardOnTransition);
+        listener2.onEntry(to);
+        listener2.onExit(to);
+        listener2.onTransition(from, to, transition);
+        assertTrue("heardOnEntry", heardOnEntry);
+        assertFalse("heardOnExit == false", heardOnExit);
+        assertFalse("heardOnTransition == false", heardOnTransition);
+    }
+
+    public void testAbstractSCXMLListener3() {
+        SCXMLListener listener3 = new AbstractSCXMLListener() {
+                // empty
+            };
+
+        assertFalse("heardOnEntry == false", heardOnEntry);
+        assertFalse("heardOnExit == false", heardOnExit);
+        assertFalse("heardOnTransition == false", heardOnTransition);
+        listener3.onEntry(to);
+        listener3.onExit(to);
+        listener3.onTransition(from, to, transition);
+        assertFalse("heardOnEntry == false", heardOnEntry);
+        assertFalse("heardOnExit == false", heardOnExit);
+        assertFalse("heardOnTransition == false", heardOnTransition);
+    }
+
+    public static Test suite() {
+        TestSuite suite = new TestSuite(AbstractSCXMLListenerTest.class);
+        suite.setName("AbstractSCXMLListener Tests");
+        return suite;
+    }
+
+    public static void main(String args[]) {
+        TestRunner.run(suite());
+    }
+}

Propchange: 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/AbstractSCXMLListenerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/AbstractSCXMLListenerTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/EnvTestSuite.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/EnvTestSuite.java?view=diff&rev=547799&r1=547798&r2=547799
==============================================================================
--- 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/EnvTestSuite.java
 (original)
+++ 
jakarta/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/EnvTestSuite.java
 Fri Jun 15 14:43:38 2007
@@ -48,6 +48,7 @@
     public static Test suite() {
         TestSuite suite = new TestSuite();
         suite.setName("Commons-SCXML Environments Tests");
+        suite.addTest(AbstractSCXMLListenerTest.suite());
         suite.addTest(LogUtilsTest.suite());
         suite.addTest(SimpleContextTest.suite());
         suite.addTest(StopWatchTest.suite());



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to