1 /*** 2 * License Agreement. 3 * 4 * JSPA (POJO-SP) 5 * 6 * Copyright (C) 2009 HRX Pty Ltd 7 * 8 * This file is part of JSPA. 9 * 10 * JSPA is free software: you can redistribute it and/or modify it under the 11 * terms of the GNU Lesser General Public License version 3 as published by the 12 * Free Software Foundation. 13 * 14 * JSPA is distributed in the hope that it will be useful, but WITHOUT ANY 15 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 16 * A PARTICULAR PURPOSE. See the Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License 19 * along with JSPA. If not, see <http://www.gnu.org/licenses/>. 20 */ 21 package com.hrx.rasp.util.dao.metadata; 22 23 import java.util.HashSet; 24 import java.util.Set; 25 26 import com.hrx.rasp.util.dao.ResultSetProcessor; 27 import com.hrx.rasp.util.dao.annotations.IN; 28 import com.hrx.rasp.util.dao.annotations.INOUT; 29 import com.hrx.rasp.util.dao.annotations.OUT; 30 import com.hrx.rasp.util.dao.operation.OperationType; 31 32 /*** 33 * @author dan.stoica <dan.stoica@acslink.net.au> 34 * 35 */ 36 public class StoredProcPkMetaData implements StoredProcMetaData 37 { 38 39 private OperationType operation; 40 41 private final Set<StoredProcField<IN>> paramsIn = new HashSet<StoredProcField<IN>>(); 42 private final Set<StoredProcField<OUT>> paramsOut = new HashSet<StoredProcField<OUT>>(); 43 private final Set<StoredProcField<INOUT>> paramsInOUT = new HashSet<StoredProcField<INOUT>>(); 44 45 private final Set<StoredProcField<?>> primaryKeyParameters = new HashSet<StoredProcField<?>>(); 46 47 private Class<ResultSetProcessor<Object>> resultSetProcessorClass; 48 49 @Override 50 public void putInOutParameter(StoredProcField<INOUT> spField) 51 { 52 this.paramsInOUT.add(spField); 53 putPkParameter(spField); 54 } 55 56 @Override 57 public void putInParameter(StoredProcField<IN> spField) 58 { 59 this.paramsIn.add(spField); 60 putPkParameter(spField); 61 } 62 63 @Override 64 public void putOutParameter(StoredProcField<OUT> spField) 65 { 66 this.paramsOut.add(spField); 67 putPkParameter(spField); 68 } 69 70 @Override 71 public void putPkParameter(StoredProcField<?> spField) 72 { 73 this.primaryKeyParameters.add(spField); 74 } 75 76 @Override 77 public void setOperationType(OperationType operation) 78 { 79 this.operation = operation; 80 } 81 82 @Override 83 public OperationType getOperationType() 84 { 85 return operation; 86 } 87 88 @Override 89 public void clear() 90 { 91 this.primaryKeyParameters.clear(); 92 } 93 94 public int getArgCount() 95 { 96 return this.primaryKeyParameters.size(); 97 } 98 99 /*** 100 * @return the resultSetProcessorClass 101 */ 102 public Class<ResultSetProcessor<Object>> getResultSetProcessorClass() 103 { 104 return (Class<ResultSetProcessor<Object>>) resultSetProcessorClass; 105 } 106 107 /*** 108 * @param resultSetProcessorClass 109 * the resultSetProcessorClass to set 110 */ 111 public void setResultSetProcessorClass(Class<ResultSetProcessor<Object>> resultSetProcessorClass) 112 { 113 this.resultSetProcessorClass = resultSetProcessorClass; 114 } 115 116 /*** 117 * @return the paramsIn 118 */ 119 public Set<StoredProcField<IN>> getInParameters() 120 { 121 return paramsIn; 122 } 123 124 /*** 125 * @return the paramsOut 126 */ 127 public Set<StoredProcField<OUT>> getOutParameters() 128 { 129 return paramsOut; 130 } 131 132 /*** 133 * @return 134 */ 135 public Set<StoredProcField<INOUT>> getInOutParameters() 136 { 137 return paramsInOUT; 138 } 139 140 public Set<StoredProcField<?>> getPrimaryKeyParameters() 141 { 142 return primaryKeyParameters; 143 } 144 145 }