Clover coverage report - Drools - 2.0-rc2
Coverage timestamp: Wed May 11 2005 07:12:26 BST
file stats: LOC: 141   Methods: 5
NCLOC: 35   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
TerminalNode.java - 66.7% 60% 63.6%
coverage coverage
 1    package org.drools.reteoo;
 2   
 3    /*
 4    * $Id: TerminalNode.java,v 1.39 2005/02/02 00:23:22 mproctor Exp $
 5    *
 6    * Copyright 2001-2003 (C) The Werken Company. All Rights Reserved.
 7    *
 8    * Redistribution and use of this software and associated documentation
 9    * ("Software"), with or without modification, are permitted provided that the
 10    * following conditions are met:
 11    *
 12    * 1. Redistributions of source code must retain copyright statements and
 13    * notices. Redistributions must also contain a copy of this document.
 14    *
 15    * 2. Redistributions in binary form must reproduce the above copyright notice,
 16    * this list of conditions and the following disclaimer in the documentation
 17    * and/or other materials provided with the distribution.
 18    *
 19    * 3. The name "drools" must not be used to endorse or promote products derived
 20    * from this Software without prior written permission of The Werken Company.
 21    * For written permission, please contact bob@werken.com.
 22    *
 23    * 4. Products derived from this Software may not be called "drools" nor may
 24    * "drools" appear in their names without prior written permission of The Werken
 25    * Company. "drools" is a trademark of The Werken Company.
 26    *
 27    * 5. Due credit should be given to The Werken Company. (http://werken.com/)
 28    *
 29    * THIS SOFTWARE IS PROVIDED BY THE WERKEN COMPANY AND CONTRIBUTORS ``AS IS''
 30    * AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 31    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 32    * ARE DISCLAIMED. IN NO EVENT SHALL THE WERKEN COMPANY OR ITS CONTRIBUTORS BE
 33    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 34    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 35    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 36    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 37    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 38    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 39    * POSSIBILITY OF SUCH DAMAGE.
 40    *
 41    */
 42   
 43    import org.drools.AssertionException;
 44    import org.drools.rule.Rule;
 45   
 46    /**
 47    * Leaf Rete-OO node responsible for enacting <code>Action</code> s on a
 48    * matched <code>Rule</code>.
 49    *
 50    * @see org.drools.rule.Rule
 51    *
 52    * @author <a href="mailto:bob@eng.werken.com">bob mcwhirter </a>
 53    */
 54    final class TerminalNode
 55    implements
 56    TupleSink
 57    {
 58    // ------------------------------------------------------------
 59    // Instance members
 60    // ------------------------------------------------------------
 61   
 62    /** The rule to invoke upon match. */
 63    private final Rule rule;
 64   
 65    // ------------------------------------------------------------
 66    // Constructors
 67    // ------------------------------------------------------------
 68   
 69    /**
 70    * Construct.
 71    *
 72    * @param inputSource
 73    * The parent tuple source.
 74    * @param rule
 75    * The rule.
 76    */
 77  90 TerminalNode(TupleSource inputSource,
 78    Rule rule)
 79    {
 80  90 this.rule = rule;
 81   
 82  90 inputSource.addTupleSink( this );
 83    }
 84   
 85    // ------------------------------------------------------------
 86    // Instance methods
 87    // ------------------------------------------------------------
 88   
 89    /**
 90    * Retrieve the <code>Action</code> associated with this node.
 91    *
 92    * @return The <code>Action</code> associated with this node.
 93    */
 94  0 public Rule getRule()
 95    {
 96  0 return this.rule;
 97    }
 98   
 99    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 100    // org.drools.impl.TupleSink
 101    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 102   
 103    /**
 104    * Assert a new <code>Tuple</code>.
 105    *
 106    * @param tuple
 107    * The <code>Tuple</code> being asserted.
 108    * @param workingMemory
 109    * The working memory seesion.
 110    *
 111    * @throws AssertionException
 112    * If an error occurs while asserting.
 113    */
 114  6145 public void assertTuple(ReteTuple tuple,
 115    WorkingMemoryImpl workingMemory) throws AssertionException
 116    {
 117  6145 workingMemory.getAgenda( ).addToAgenda( tuple,
 118    this.rule );
 119    }
 120   
 121    /**
 122    * Retract tuples.
 123    *
 124    * @param key
 125    * The tuple key.
 126    * @param workingMemory
 127    * The working memory seesion.
 128    */
 129  931 public void retractTuples(TupleKey key,
 130    WorkingMemoryImpl workingMemory)
 131    {
 132  931 workingMemory.getAgenda( ).removeFromAgenda( key,
 133    this.rule );
 134    }
 135   
 136   
 137  0 public String toString()
 138    {
 139  0 return "[TerminalNode: rule=" + rule.getName( ) + "]";
 140    }
 141    }