001 package com.mockrunner.mock.connector.cci; 002 003 import javax.naming.NamingException; 004 import javax.naming.Reference; 005 import javax.resource.ResourceException; 006 import javax.resource.cci.Connection; 007 import javax.resource.cci.ConnectionFactory; 008 import javax.resource.cci.ConnectionSpec; 009 import javax.resource.cci.RecordFactory; 010 import javax.resource.cci.ResourceAdapterMetaData; 011 012 /** 013 * Mock implementation of <code>ConnectionFactory</code> 014 */ 015 public class MockConnectionFactory implements ConnectionFactory 016 { 017 private Connection connection; 018 private RecordFactory recordFactory; 019 private ResourceAdapterMetaData metaData; 020 private Reference reference; 021 022 public MockConnectionFactory() 023 { 024 metaData = new MockResourceAdapterMetaData(); 025 recordFactory = new MockRecordFactory(); 026 } 027 028 public void setConnection(Connection connection) 029 { 030 this.connection = connection; 031 } 032 033 public Connection getConnection() throws ResourceException 034 { 035 return connection; 036 } 037 038 public MockConnection getMockConnection() 039 { 040 if(connection instanceof MockConnection) 041 { 042 return (MockConnection)connection; 043 } 044 return null; 045 } 046 047 public Connection getConnection(ConnectionSpec cs) throws ResourceException 048 { 049 return connection; 050 } 051 052 public RecordFactory getRecordFactory() throws ResourceException 053 { 054 return recordFactory; 055 } 056 057 public ResourceAdapterMetaData getMetaData() throws ResourceException 058 { 059 return metaData; 060 } 061 062 public void setReference(Reference reference) 063 { 064 this.reference = reference; 065 } 066 067 public Reference getReference() throws NamingException 068 { 069 return reference; 070 } 071 072 /** 073 * Sets the resource adapter meta data. If you do not set an explicit 074 * <code>ResourceAdapterMetaData</code> object, a default {@link MockResourceAdapterMetaData} 075 * will be created. 076 * @param metaData the <code>ResourceAdapterMetaData</code> 077 */ 078 public void setMetaData(ResourceAdapterMetaData metaData) 079 { 080 this.metaData = metaData; 081 } 082 083 /** 084 * Sets the record factory. If you do not set an explicit 085 * <code>RecordFactory</code>, a default {@link MockRecordFactory} 086 * will be created. 087 * @param recordFactory the <code>RecordFactory</code> 088 */ 089 public void setRecordFactory(RecordFactory recordFactory) 090 { 091 this.recordFactory = recordFactory; 092 } 093 }