package hu.sztaki.ilab.longneck.process.access; import hu.sztaki.ilab.longneck.Field; import hu.sztaki.ilab.longneck.Record; import hu.sztaki.ilab.longneck.util.DatabaseUtils; import java.util.Map; import org.springframework.jdbc.core.namedparam.SqlParameterSource; /** * * @author Molnár Péter <molnarp@sztaki.mta.hu> */ public class SqlParameterSourceRecordWrapper implements SqlParameterSource { /** The type map to map fields to SQL types. */ private Map<String,Integer> typeMap; /** The record that supplies field data. */ private Record record; public Record getRecord() { return record; } public void setRecord(Record record) { this.record = record; } public Map<String, Integer> getTypeMap() { return typeMap; } public void setTypeMap(Map<String, Integer> typeMap) { this.typeMap = typeMap; } @Override public boolean hasValue(String fieldName) { String replacedFieldName = DatabaseUtils.revertReplacedBindVariableDashes(fieldName); if (record.has(replacedFieldName)) { return true; } return false; } @Override public Object getValue(String fieldName) throws IllegalArgumentException { Field f = record.get(DatabaseUtils.revertReplacedBindVariableDashes(fieldName)); if (f == null) { return null; } return f.getValue(); } @Override public int getSqlType(String fieldName) { if (typeMap.get(fieldName) != null) { return typeMap.get(fieldName).intValue(); } return SqlParameterSource.TYPE_UNKNOWN; } @Override public String getTypeName(String fieldName) { return null; } }