Clean up random todos

This commit is contained in:
Travis Burtrum 2017-06-07 19:15:00 -04:00
parent 6897043392
commit 8e125d8e68
6 changed files with 18 additions and 13 deletions

View File

@ -1,5 +1,6 @@
package com.moparisthebest.jdbc.codegen;
import com.moparisthebest.jdbc.Finishable;
import com.moparisthebest.jdbc.ResultSetMapper;
import javax.annotation.processing.ProcessingEnvironment;
@ -13,6 +14,7 @@ import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
import java.io.IOException;
import java.io.Writer;
import java.sql.ResultSet;
import java.util.*;
import static com.moparisthebest.jdbc.codegen.JdbcMapperProcessor.typeMirrorStringNoGenerics;
@ -23,8 +25,8 @@ import static com.moparisthebest.jdbc.codegen.JdbcMapperProcessor.typeMirrorToCl
*/
public class CompileTimeResultSetMapper {
private final Types types;
private final TypeMirror collectionType, mapType, mapCollectionType, iteratorType, listIteratorType;
public final Types types;
public final TypeMirror collectionType, mapType, mapCollectionType, iteratorType, listIteratorType, finishableType, resultSetType;
public CompileTimeResultSetMapper(final ProcessingEnvironment processingEnv) {
types = processingEnv.getTypeUtils();
@ -36,6 +38,9 @@ public class CompileTimeResultSetMapper {
iteratorType = types.getDeclaredType(elements.getTypeElement(Iterator.class.getCanonicalName()), types.getWildcardType(null, null));
listIteratorType = types.getDeclaredType(elements.getTypeElement(ListIterator.class.getCanonicalName()), types.getWildcardType(null, null));
finishableType = elements.getTypeElement(Finishable.class.getCanonicalName()).asType();
resultSetType = elements.getTypeElement(ResultSet.class.getCanonicalName()).asType();
}
public static String getConcreteClassCanonicalName(final TypeMirror returnType, final Class defaultConcreteClass) {
@ -89,7 +94,7 @@ public class CompileTimeResultSetMapper {
}
public CompileTimeRowToObjectMapper getRowMapper(final String[] keys, TypeMirror returnTypeClass, Calendar cal, TypeMirror mapValType, TypeMirror mapKeyType) {
return new CompileTimeRowToObjectMapper(keys, returnTypeClass, cal, mapValType, mapKeyType);
return new CompileTimeRowToObjectMapper(this, keys, returnTypeClass, cal, mapValType, mapKeyType);
}
public void writeObject(final Writer w, final String[] keys, final TypeMirror returnTypeMirror, final Calendar cal) throws IOException, ClassNotFoundException {

View File

@ -28,7 +28,8 @@ public class CompileTimeRowToObjectMapper {
protected static final TypeMappingsFactory _tmf = TypeMappingsFactory.getInstance();
final String[] keys;
protected final CompileTimeResultSetMapper rsm;
protected final String[] keys;
/**
* Calendar instance for date/time mappings.
@ -53,7 +54,8 @@ public class CompileTimeRowToObjectMapper {
protected Element[] _fields = null;
protected int[] _fieldTypes;
public CompileTimeRowToObjectMapper(final String[] keys, final TypeMirror returnTypeClass, final Calendar cal, final TypeMirror mapValType, final TypeMirror mapKeyType) {
public CompileTimeRowToObjectMapper(final CompileTimeResultSetMapper rsm, final String[] keys, final TypeMirror returnTypeClass, final Calendar cal, final TypeMirror mapValType, final TypeMirror mapKeyType) {
this.rsm = rsm;
this.keys = keys;
_cal = cal;
@ -63,7 +65,7 @@ public class CompileTimeRowToObjectMapper {
mapOnlySecondColumn = _mapKeyType != null && _columnCount == 2;
returnMap = false;//todo: Map.class.isAssignableFrom(returnTypeClass);
returnMap = rsm.types.isAssignable(returnTypeClass, rsm.mapType);
if (returnMap) {
// todo: need this? _returnTypeClass = ResultSetMapper.getConcreteClass(returnTypeClass, HashMap.class);
_returnTypeClass = null;
@ -83,7 +85,7 @@ public class CompileTimeRowToObjectMapper {
final List<? extends VariableElement> params = ((ExecutableElement)e).getParameters();
if(params.isEmpty())
defaultConstructor = true;
else if(params.size() == 1 && params.get(0).asType().toString().equals("java.sql.ResultSet")) // todo: this better
else if(params.size() == 1 && rsm.types.isSameType(params.get(0).asType(), rsm.resultSetType))
resultSetConstructor = true;
}
}
@ -269,7 +271,6 @@ public class CompileTimeRowToObjectMapper {
if (returnMap) // we want a map
try {
// todo: does not call getMapImplementation, I think that's fine
java.append("final ").append(tType).append("<String, Object> ret = new ").append(tType).append("<String, Object>();\n");
final int columnLength = _columnCount + 1;
int typeId = getTypeId(componentType);
@ -378,8 +379,8 @@ public class CompileTimeRowToObjectMapper {
}
}
// if this resultObject is Finishable, call finish()
//if (Finishable.class.isAssignableFrom(_returnTypeClass))
//todo: java.append("ret.finish(rs);\n");
if (rsm.types.isAssignable(_returnTypeClass, rsm.finishableType))
java.append("ret.finish(rs);\n");
}
public static int getTypeId(TypeMirror classType) {

View File

@ -122,7 +122,7 @@ public class JdbcMapperProcessor extends AbstractProcessor {
}
if (doJndi) {
w.write("import javax.naming.InitialContext;\n");
w.write("import javax.sql.DataSource;\n");
// * imported below w.write("import javax.sql.DataSource;\n");
}
w.write("import java.sql.*;\n\n");
w.write("import static com.moparisthebest.jdbc.util.ResultSetUtil.*;\n");

View File

@ -0,0 +1 @@
com.moparisthebest.jdbc.codegen.JdbcMapperProcessor

View File

@ -195,7 +195,6 @@ public class CompilingRowToObjectMapper<K, T> extends RowToObjectMapper<K, T> {
if (returnMap) // we want a map
try {
// todo: does not call getMapImplementation, I think that's fine
java.append("final ").append(tType).append("<String, Object> ret = new ").append(tType).append("<String, Object>();\n");
final int columnLength = _columnCount + 1;
if (componentType != null && componentType != Object.class) { // we want a specific value type

View File

@ -1 +0,0 @@
com.moparisthebest.jdbc.codegen.JdbcMapperProcessor