001 package com.mockrunner.mock.connector.cci; 002 003 import java.util.HashMap; 004 import java.util.Map; 005 006 import javax.resource.ResourceException; 007 import javax.resource.cci.ResultSetInfo; 008 009 /** 010 * Mock implementation of <code>ResultSetInfo</code>. 011 */ 012 public class MockResultSetInfo implements ResultSetInfo 013 { 014 private Map deletesAreDetectedMap; 015 private Map insertsAreDetectedMap; 016 private Map updatesAreDetectedMap; 017 private Map othersDeletesAreVisibleMap; 018 private Map othersInsertsAreVisibleMap; 019 private Map othersUpdatesAreVisibleMap; 020 private Map ownDeletesAreVisibleMap; 021 private Map ownInsertsAreVisibleMap; 022 private Map ownUpdatesAreVisibleMap; 023 private Map supportsResultSetTypeMap; 024 private Map supportsResultTypeConcurrencyMap; 025 026 public MockResultSetInfo() 027 { 028 deletesAreDetectedMap = new HashMap(); 029 insertsAreDetectedMap = new HashMap(); 030 updatesAreDetectedMap = new HashMap(); 031 othersDeletesAreVisibleMap = new HashMap(); 032 othersInsertsAreVisibleMap = new HashMap(); 033 othersUpdatesAreVisibleMap = new HashMap(); 034 ownDeletesAreVisibleMap = new HashMap(); 035 ownInsertsAreVisibleMap = new HashMap(); 036 ownUpdatesAreVisibleMap = new HashMap(); 037 supportsResultSetTypeMap = new HashMap(); 038 supportsResultTypeConcurrencyMap = new HashMap(); 039 } 040 041 public boolean deletesAreDetected(int type) throws ResourceException 042 { 043 Boolean deletesAreDetected = (Boolean)deletesAreDetectedMap.get(new Integer(type)); 044 if(null == deletesAreDetected) return true; 045 return deletesAreDetected.booleanValue(); 046 } 047 048 public boolean insertsAreDetected(int type) throws ResourceException 049 { 050 Boolean insertsAreDetected = (Boolean)insertsAreDetectedMap.get(new Integer(type)); 051 if(null == insertsAreDetected) return true; 052 return insertsAreDetected.booleanValue(); 053 } 054 055 public boolean updatesAreDetected(int type) throws ResourceException 056 { 057 Boolean updatesAreDetected = (Boolean)updatesAreDetectedMap.get(new Integer(type)); 058 if(null == updatesAreDetected) return true; 059 return updatesAreDetected.booleanValue(); 060 } 061 062 public boolean othersDeletesAreVisible(int type) throws ResourceException 063 { 064 Boolean othersDeletesAreVisible = (Boolean)othersDeletesAreVisibleMap.get(new Integer(type)); 065 if(null == othersDeletesAreVisible) return true; 066 return othersDeletesAreVisible.booleanValue(); 067 } 068 069 public boolean othersInsertsAreVisible(int type) throws ResourceException 070 { 071 Boolean othersInsertsAreVisible = (Boolean)othersInsertsAreVisibleMap.get(new Integer(type)); 072 if(null == othersInsertsAreVisible) return true; 073 return othersInsertsAreVisible.booleanValue(); 074 } 075 076 public boolean othersUpdatesAreVisible(int type) throws ResourceException 077 { 078 Boolean othersUpdatesAreVisible = (Boolean)othersUpdatesAreVisibleMap.get(new Integer(type)); 079 if(null == othersUpdatesAreVisible) return true; 080 return othersUpdatesAreVisible.booleanValue(); 081 } 082 083 public boolean ownDeletesAreVisible(int type) throws ResourceException 084 { 085 Boolean ownDeletesAreVisible = (Boolean)ownDeletesAreVisibleMap.get(new Integer(type)); 086 if(null == ownDeletesAreVisible) return true; 087 return ownDeletesAreVisible.booleanValue(); 088 } 089 090 public boolean ownInsertsAreVisible(int type) throws ResourceException 091 { 092 Boolean ownInsertsAreVisible = (Boolean)ownInsertsAreVisibleMap.get(new Integer(type)); 093 if(null == ownInsertsAreVisible) return true; 094 return ownInsertsAreVisible.booleanValue(); 095 } 096 097 public boolean ownUpdatesAreVisible(int type) throws ResourceException 098 { 099 Boolean ownUpdatesAreVisible = (Boolean)ownUpdatesAreVisibleMap.get(new Integer(type)); 100 if(null == ownUpdatesAreVisible) return true; 101 return ownUpdatesAreVisible.booleanValue(); 102 } 103 104 public boolean supportsResultSetType(int type) throws ResourceException 105 { 106 Boolean supportsResultSetType = (Boolean)supportsResultSetTypeMap.get(new Integer(type)); 107 if(null == supportsResultSetType) return true; 108 return supportsResultSetType.booleanValue(); 109 } 110 111 public boolean supportsResultTypeConcurrency(int type, int concurrency) throws ResourceException 112 { 113 Boolean supportsResultTypeConcurrency = (Boolean)supportsResultTypeConcurrencyMap.get(new SupportsResultTypeConcurrencyKey(type, concurrency)); 114 if(null == supportsResultTypeConcurrency) return true; 115 return supportsResultTypeConcurrency.booleanValue(); 116 } 117 118 public void setDeletesAreDetected(int type, boolean deletesAreDetected) 119 { 120 deletesAreDetectedMap.put(new Integer(type), new Boolean(deletesAreDetected)); 121 } 122 123 public void setInsertsAreDetected(int type, boolean insertsAreDetected) 124 { 125 insertsAreDetectedMap.put(new Integer(type), new Boolean(insertsAreDetected)); 126 } 127 128 public void setUpdatesAreDetected(int type, boolean updatesAreDetected) 129 { 130 updatesAreDetectedMap.put(new Integer(type), new Boolean(updatesAreDetected)); 131 } 132 133 public void setOthersDeletesAreVisible(int type, boolean othersDeletesAreVisible) 134 { 135 othersDeletesAreVisibleMap.put(new Integer(type), new Boolean(othersDeletesAreVisible)); 136 } 137 138 public void setOthersInsertsAreVisible(int type, boolean othersInsertsAreVisible) 139 { 140 othersInsertsAreVisibleMap.put(new Integer(type), new Boolean(othersInsertsAreVisible)); 141 } 142 143 public void setOthersUpdatesAreVisible(int type, boolean othersUpdatesAreVisible) 144 { 145 othersUpdatesAreVisibleMap.put(new Integer(type), new Boolean(othersUpdatesAreVisible)); 146 } 147 148 public void setOwnDeletesAreVisible(int type, boolean ownDeletesAreVisible) 149 { 150 ownDeletesAreVisibleMap.put(new Integer(type), new Boolean(ownDeletesAreVisible)); 151 } 152 153 public void setOwnInsertsAreVisible(int type, boolean ownInsertsAreVisible) 154 { 155 ownInsertsAreVisibleMap.put(new Integer(type), new Boolean(ownInsertsAreVisible)); 156 } 157 158 public void setOwnUpdatesAreVisible(int type, boolean ownUpdatesAreVisible) 159 { 160 ownUpdatesAreVisibleMap.put(new Integer(type), new Boolean(ownUpdatesAreVisible)); 161 } 162 163 public void setSupportsResultSetType(int type, boolean supportsResultSetType) 164 { 165 supportsResultSetTypeMap.put(new Integer(type), new Boolean(supportsResultSetType)); 166 } 167 168 public void setSupportsResultTypeConcurrency(int type, int concurrency, boolean supportsResultTypeConcurrency) 169 { 170 supportsResultTypeConcurrencyMap.put(new SupportsResultTypeConcurrencyKey(type, concurrency), new Boolean(supportsResultTypeConcurrency)); 171 } 172 173 private class SupportsResultTypeConcurrencyKey 174 { 175 private int type; 176 private int concurrency; 177 178 public SupportsResultTypeConcurrencyKey(int type, int concurrency) 179 { 180 this.type = type; 181 this.concurrency = concurrency; 182 } 183 184 public int getType() 185 { 186 return type; 187 } 188 189 public int getConcurrency() 190 { 191 return concurrency; 192 } 193 194 public boolean equals(Object object) 195 { 196 if(null == object) return false; 197 if(!object.getClass().equals(this.getClass())) return false; 198 SupportsResultTypeConcurrencyKey other = (SupportsResultTypeConcurrencyKey)object; 199 return (this.getType() == other.getType()) && (this.getConcurrency() == other.getConcurrency()); 200 } 201 202 public int hashCode() 203 { 204 return ((31 + type) * 31) + concurrency; 205 } 206 } 207 }