KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > samples > prevayler > CountingPrevayler


1 package com.tirsen.nanning.samples.prevayler;
2
3 import java.io.IOException JavaDoc;
4
5 import junit.framework.Assert;
6 import org.prevayler.Prevayler;
7 import org.prevayler.Transaction;
8
9 public class CountingPrevayler extends FilterPrevayler {
10     private int numberOfTransactionsInLog = 0;
11     private StringBuffer JavaDoc transactionLog;
12
13     public CountingPrevayler(Prevayler prevayler) {
14         super(prevayler);
15     }
16
17     public void setLogTransactionMethods(boolean flag) {
18         transactionLog = flag ? new StringBuffer JavaDoc() : null;
19     }
20
21     public void execute(Transaction transaction) {
22         numberOfTransactionsInLog++;
23         if (transactionLog != null && transaction instanceof InvokeCommand) {
24             InvokeCommand invokeCommand = (InvokeCommand) transaction;
25             if (transactionLog.length() != 0) {
26                 transactionLog.append(" ");
27             }
28             transactionLog.append(invokeCommand.getCall().getMethod().getName());
29         }
30
31         super.execute(transaction);
32     }
33
34     public void assertNumberOfCommands(String JavaDoc message, int expectedNumber) {
35         Assert.assertEquals(message + ", wrong number of commands in log", expectedNumber, numberOfTransactionsInLog);
36     }
37
38     public void assertNumberOfCommands(int expectedNumber) {
39         Assert.assertEquals("wrong number of commands in log", expectedNumber, numberOfTransactionsInLog);
40     }
41
42     public int getNumberOfTransactionsInLog() {
43         return numberOfTransactionsInLog;
44     }
45
46     public void resetCount() {
47         numberOfTransactionsInLog = 0;
48         if (transactionLog != null) {
49             transactionLog = new StringBuffer JavaDoc();
50         }
51     }
52
53     public String JavaDoc getTransactionLog() {
54         return transactionLog.toString();
55     }
56 }
57
Popular Tags