code: @Override
  	public void generateSpecializedPart(SQLiteModelMethod method, TypeSpec.Builder classBuilder, MethodSpec.Builder methodBuilder, Set<JQLProjection> fieldList, boolean mapFields) {
  		TypeName returnTypeName = method.getReturnClass();
  
  		//ASSERT: returnType is a supported type
  		
  		// no column or too many columns
  		AssertKripton.assertTrueOrInvalidMethodSignException(fieldList.size() == 1, method, "no way to understand which field is the result for this method");				
  
  		SQLTransform t = SQLTransformer.lookup(returnTypeName);
  
  		methodBuilder.addCode("$T result=", returnTypeName);
  		t.generateDefaultValue(methodBuilder);
  		methodBuilder.addCode(";\n");
  
  		methodBuilder.addCode("\n");
  		// methodBuilder.beginControlFlow("try");
  		methodBuilder.beginControlFlow("if (_cursor.moveToFirst())");
  
  		// generate index from columns
  		methodBuilder.addCode("\n");
  
  		if (TypeUtility.isNullable(returnTypeName)) {
  			methodBuilder.addCode("if (_cursor.isNull(0)) { return null; }\n");
  		} else {
  			methodBuilder.addCode("if (_cursor.isNull(0)) { return ");
  			t.generateDefaultValue(methodBuilder);
  			methodBuilder.addCode("; }\n", t);
  		}
  		methodBuilder.addCode("result=");
  		t.generateReadValueFromCursor(methodBuilder, method.getParent(), returnTypeName, "_cursor", "0");
  		methodBuilder.addCode(";\n");
  
  		// end cursor
  		methodBuilder.endControlFlow();
  
  		methodBuilder.addCode("return result;\n");
  		// end method
  		methodBuilder.endControlFlow();
  	}
docs: /*
  (non-Javadoc)
  
  @see com.abubusoft.kripton.processor.sqlite.SQLiteSelectBuilder.
  SelectCodeGenerator#generate(com.squareup.javapoet.MethodSpec.Builder)