001 package com.mockrunner.mock.jdbc;
002
003 import java.sql.ParameterMetaData;
004 import java.sql.SQLException;
005 import java.sql.Types;
006 import java.util.HashMap;
007 import java.util.Map;
008
009 /**
010 * Mock implementation of <code>ParameterMetaData</code>.
011 */
012 public class MockParameterMetaData implements ParameterMetaData
013 {
014 private int parameterCount;
015 private Map parameterModeMap;
016 private Map parameterTypeMap;
017 private Map precisionMap;
018 private Map scaleMap;
019 private Map isNullableMap;
020 private Map isSignedMap;
021 private Map parameterClassNameMap;
022 private Map parameterTypeNameMap;
023
024 public MockParameterMetaData()
025 {
026 parameterCount = 0;
027 parameterModeMap = new HashMap();
028 parameterTypeMap = new HashMap();
029 precisionMap = new HashMap();
030 scaleMap = new HashMap();
031 isNullableMap = new HashMap();
032 isSignedMap = new HashMap();
033 parameterClassNameMap = new HashMap();
034 parameterTypeNameMap = new HashMap();
035 }
036
037 public void setParameterCount(int count)
038 {
039 parameterCount = count;
040 }
041
042 public void setParameterMode(int param, int parameterMode)
043 {
044 parameterModeMap.put(new Integer(param), new Integer(parameterMode));
045 }
046
047 public void setParameterType(int param, int parameterType)
048 {
049 parameterTypeMap.put(new Integer(param), new Integer(parameterType));
050 }
051
052 public void setPrecision(int param, int precision)
053 {
054 precisionMap.put(new Integer(param), new Integer(precision));
055 }
056
057 public void setScale(int param, int scale)
058 {
059 scaleMap.put(new Integer(param), new Integer(scale));
060 }
061
062 public void setNullable(int param, int nullable)
063 {
064 isNullableMap.put(new Integer(param), new Integer(nullable));
065 }
066
067 public void setSigned(int param, boolean signed)
068 {
069 isSignedMap.put(new Integer(param), new Boolean(signed));
070 }
071
072 public void setParameterClassName(int param, String parameterClassName)
073 {
074 parameterClassNameMap.put(new Integer(param), parameterClassName);
075 }
076
077 public void setParameterTypeName(int param, String parameterTypeName)
078 {
079 parameterTypeNameMap.put(new Integer(param), parameterTypeName);
080 }
081
082 public int getParameterCount() throws SQLException
083 {
084 return parameterCount;
085 }
086
087 public int getParameterMode(int param) throws SQLException
088 {
089 Integer parameterMode = (Integer)parameterModeMap.get(new Integer(param));
090 if(null == parameterMode) return parameterModeUnknown;
091 return parameterMode.intValue();
092 }
093
094 public int getParameterType(int param) throws SQLException
095 {
096 Integer parameterType = (Integer)parameterTypeMap.get(new Integer(param));
097 if(null == parameterType) return Types.OTHER;
098 return parameterType.intValue();
099 }
100
101 public int getPrecision(int param) throws SQLException
102 {
103 Integer precision = (Integer)precisionMap.get(new Integer(param));
104 if(null == precision) return 0;
105 return precision.intValue();
106 }
107
108 public int getScale(int param) throws SQLException
109 {
110 Integer scale = (Integer)scaleMap.get(new Integer(param));
111 if(null == scale) return 0;
112 return scale.intValue();
113 }
114
115 public int isNullable(int param) throws SQLException
116 {
117 Integer isNullable = (Integer)isNullableMap.get(new Integer(param));
118 if(null == isNullable) return parameterNullable;
119 return isNullable.intValue();
120 }
121
122 public boolean isSigned(int param) throws SQLException
123 {
124 Boolean isSigned = (Boolean)isSignedMap.get(new Integer(param));
125 if(null == isSigned) return false;
126 return isSigned.booleanValue();
127 }
128
129 public String getParameterClassName(int param) throws SQLException
130 {
131 String parameterClassName = (String)parameterClassNameMap.get(new Integer(param));
132 if(null == parameterClassName) return Object.class.getName();
133 return parameterClassName;
134 }
135
136 public String getParameterTypeName(int param) throws SQLException
137 {
138 String ParameterTypeName = (String)parameterTypeNameMap.get(new Integer(param));
139 if(null == ParameterTypeName) return Object.class.getName();
140 return ParameterTypeName;
141 }
142
143 public boolean isWrapperFor(Class iface) throws SQLException
144 {
145 return false;
146 }
147
148 public Object unwrap(Class iface) throws SQLException
149 {
150 throw new SQLException("No object found for " + iface);
151 }
152 }