001 package com.mockrunner.mock.connector.cci; 002 003 import javax.resource.ResourceException; 004 import javax.resource.cci.Connection; 005 import javax.resource.cci.Interaction; 006 import javax.resource.cci.InteractionSpec; 007 import javax.resource.cci.Record; 008 import javax.resource.cci.ResourceWarning; 009 010 /** 011 * Mock implementation of <code>Interaction</code>. 012 * The <code>execute</code> calls are delegated to 013 * {@link com.mockrunner.connector.InteractionHandler}. 014 */ 015 public class MockInteraction implements Interaction 016 { 017 private MockConnection mockConnection; 018 private boolean closed; 019 020 public MockInteraction(MockConnection mockConnection) 021 { 022 this.mockConnection = mockConnection; 023 closed = false; 024 } 025 026 public void clearWarnings() throws ResourceException 027 { 028 029 } 030 031 public void close() throws ResourceException 032 { 033 closed = true; 034 } 035 036 /** 037 * Calls {@link com.mockrunner.connector.InteractionHandler#execute(InteractionSpec, Record)}. 038 */ 039 public Record execute(InteractionSpec is, Record record) throws ResourceException 040 { 041 return mockConnection.getInteractionHandler().execute(is, record); 042 } 043 044 /** 045 * Calls {@link com.mockrunner.connector.InteractionHandler#execute(InteractionSpec, Record, Record)}. 046 */ 047 public boolean execute(InteractionSpec is, Record request, Record response) throws ResourceException 048 { 049 return mockConnection.getInteractionHandler().execute(is, request, response); 050 } 051 052 public Connection getConnection() 053 { 054 return mockConnection; 055 } 056 057 /** 058 * Returns if this <code>Interaction</code> is closed. 059 * @return <code>true</code> if this <code>Interaction</code> is closed, 060 * <code>false</code> otherwise 061 */ 062 public boolean isClosed() 063 { 064 return closed; 065 } 066 067 /** 068 * Returns <code>null</code>, warnings not supported yet. 069 */ 070 public ResourceWarning getWarnings() throws ResourceException 071 { 072 return null; 073 } 074 }