001    package com.mockrunner.jdbc;
002    
003    import java.util.ArrayList;
004    import java.util.List;
005    import java.util.Map;
006    
007    /**
008     * Encapsulates the parameter sets for an executed
009     * {@link com.mockrunner.mock.jdbc.MockPreparedStatement} or
010     * {@link com.mockrunner.mock.jdbc.MockCallableStatement}.
011     * If the prepared statement is executed multiple times, this
012     * class contains multiple maps with the corresponding parameters.
013     * Each <code>execute</code> call creates a parameter set.
014     * A parameter set is a map, the index or the name of the 
015     * parameter maps to the value.
016     */
017    public class ParameterSets
018    {
019            private List parameterSets;
020            private String sql;
021            
022            public ParameterSets(String sql)
023            {
024                    parameterSets = new ArrayList();
025                    this.sql = sql;
026            }
027            
028            /**
029             * Get the SQL string.
030             * @return the SQL string
031             */
032            public String getSQLStatement()
033            {
034                    return sql;
035            }
036            
037            /**
038             * Adds a parameter set.
039             * @param parameterSet the parameter set.
040             */
041            public void addParameterSet(Map parameterSet)
042            {
043                    parameterSets.add(parameterSet);
044            }
045            
046            /**
047             * Get the current number of parameter sets.
048             * @return the number of parameter sets
049             */
050            public int getNumberParameterSets()
051            {
052                    return parameterSets.size();
053            }
054            
055            /**
056             * Gets a parameter set for a specified index.
057             * @param indexOfParameterSet the index
058             * @return the parameter set
059             */
060            public Map getParameterSet(int indexOfParameterSet)
061            {
062                    if(indexOfParameterSet >= getNumberParameterSets()) return null;
063                    return (Map)parameterSets.get(indexOfParameterSet);
064            }
065    }