| Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||||||
| AbstractParameterizedCommand |
|
| 0.0;0 |
| 1 | /* |
|
| 2 | * SQLElements object-oriented SQL parsing and generation library |
|
| 3 | * |
|
| 4 | * Copyright (c) 2003, 2004, 2005 Israfil Consulting Services Corporation |
|
| 5 | * Copyright (c) 2003, 2004, 2005 Christian Edward Gruber |
|
| 6 | * All Rights Reserved |
|
| 7 | * |
|
| 8 | * This library is free software; you can redistribute it and/or modify |
|
| 9 | * it under the terms of the GNU Lesser General Public License as published |
|
| 10 | * by the Free Software Foundation; either version 2.1 of the License, or |
|
| 11 | * (at your option) any later version. |
|
| 12 | * |
|
| 13 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
|
| 14 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
| 15 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
| 16 | * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, |
|
| 17 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
|
| 18 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, |
|
| 19 | * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|
| 20 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|
| 21 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY |
|
| 22 | * OF SUCH DAMAGE. |
|
| 23 | * |
|
| 24 | * You should have received a copy of the GNU Lesser General Public License |
|
| 25 | * along with this library; if not, please visit http://www.gnu.org/licenses/lgpl.html |
|
| 26 | * |
|
| 27 | * $Id: AbstractParameterizedCommand.java 27 2006-01-14 07:50:08 -0500 (Sat, 14 Jan 2006) cgruber $ |
|
| 28 | */ |
|
| 29 | package org.israfil.sqlelements; |
|
| 30 | ||
| 31 | import java.util.Set; |
|
| 32 | ||
| 33 | import net.israfil.foundation.collections.ArraySet; |
|
| 34 | ||
| 35 | import org.israfil.sqlelements.constraints.Constraint; |
|
| 36 | ||
| 37 | /** |
|
| 38 | * |
|
| 39 | * @author <a href="mailto:cgruber@israfil.net">Christian Edward Gruber </a> |
|
| 40 | * @author Latest: $Author: cgruber $ |
|
| 41 | * @version $Revision: 27 $ |
|
| 42 | */ |
|
| 43 | public abstract class AbstractParameterizedCommand extends AbstractCommand implements ParameterizedCommand { |
|
| 44 | ||
| 45 | 5 | protected Set<SQLParameter> parameters = new ArraySet<SQLParameter>(); |
| 46 | 0 | public Set<SQLParameter> getParameters() { return parameters; } |
| 47 | ||
| 48 | protected AbstractParameterizedCommand() { |
|
| 49 | 3 | super(); |
| 50 | 3 | } |
| 51 | ||
| 52 | public AbstractParameterizedCommand (Constraint constraint, SQLParameter ... parameters) { |
|
| 53 | 2 | super(constraint); |
| 54 | 2 | setParameters(parameters); |
| 55 | 2 | } |
| 56 | ||
| 57 | public void setParameters(SQLParameter ... parameters) |
|
| 58 | { |
|
| 59 | 2 | for (SQLParameter p : parameters) setParameter(p); |
| 60 | 2 | } |
| 61 | ||
| 62 | public void setParameter(SQLParameter parameter) |
|
| 63 | { |
|
| 64 | 3 | if (parameter.column.getTable() == null) throw new IllegalArgumentException("Must supply column in parameters that contain a table."); |
| 65 | 3 | if (table == null) table = parameter.column.getTable(); |
| 66 | 3 | if (!table.equals(parameter.column.getTable())) throw new IllegalArgumentException("Must supply columns only from the same table."); |
| 67 | 3 | for (SQLParameter current : parameters) |
| 68 | 0 | if (current.column == parameter.column) parameters.remove(current); |
| 69 | 3 | parameters.add(parameter); |
| 70 | 3 | } |
| 71 | ||
| 72 | public void setParameter(Column c,Object v) { |
|
| 73 | 0 | setParameter(new SQLParameter(c,v)); |
| 74 | 0 | } |
| 75 | ||
| 76 | public Object getParameterValue(Column c) { |
|
| 77 | 1 | for (SQLParameter p : parameters) if (p.column == c) return p.value; |
| 78 | 0 | return null; |
| 79 | } |
|
| 80 | } |