package org.sql2o;
import org.sql2o.quirks.Quirks;
import org.sql2o.reflection.PojoMetadata;
import java.util.Map;
public class DefaultResultSetHandlerFactoryBuilder implements ResultSetHandlerFactoryBuilder {
private boolean caseSensitive;
private boolean autoDeriveColumnNames;
private boolean throwOnMappingError;
private Map<String, String> columnMappings;
private Quirks quirks;
public boolean isCaseSensitive() {
return caseSensitive;
}
public void setCaseSensitive(boolean caseSensitive) {
this.caseSensitive = caseSensitive;
}
public boolean isAutoDeriveColumnNames() {
return autoDeriveColumnNames;
}
public void setAutoDeriveColumnNames(boolean autoDeriveColumnNames) {
this.autoDeriveColumnNames = autoDeriveColumnNames;
}
@Override
public boolean isThrowOnMappingError() {
return throwOnMappingError;
}
@Override
public void throwOnMappingError(boolean throwOnMappingError) {
this.throwOnMappingError = throwOnMappingError;
}
public Map<String, String> getColumnMappings() {
return columnMappings;
}
public void setColumnMappings(Map<String, String> columnMappings) {
this.columnMappings = columnMappings;
}
public Quirks getQuirks() {
return quirks;
}
public void setQuirks(Quirks quirks) {
this.quirks = quirks;
}
@SuppressWarnings("unchecked")
public <T> ResultSetHandlerFactory<T> newFactory(Class<T> clazz) {
PojoMetadata pojoMetadata = new PojoMetadata(clazz, caseSensitive, autoDeriveColumnNames, columnMappings, throwOnMappingError);
return new DefaultResultSetHandlerFactory(pojoMetadata, quirks);
}
}