jdk annotations for some java.sql methods, related cleanup in stdlib & tests
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import java.sql.DriverManager
|
||||
|
||||
fun getConnection(url: String?) {
|
||||
DriverManager.<!NONE_APPLICABLE!>getConnection<!>(url)
|
||||
DriverManager.getConnection(url!!) : java.sql.Connection
|
||||
}
|
||||
|
||||
fun getConnection(url: String?, props: java.util.Properties?) {
|
||||
DriverManager.<!NONE_APPLICABLE!>getConnection<!>(url, props)
|
||||
DriverManager.getConnection(url!!, props) : java.sql.Connection
|
||||
}
|
||||
|
||||
fun getConnection(url: String?, user: String?, password: String?) {
|
||||
DriverManager.<!NONE_APPLICABLE!>getConnection<!>(url, user!!, password!!)
|
||||
DriverManager.<!NONE_APPLICABLE!>getConnection<!>(url!!, user, password!!)
|
||||
DriverManager.<!NONE_APPLICABLE!>getConnection<!>(url!!, user!!, password)
|
||||
DriverManager.getConnection(url!!, user!!, password!!) : java.sql.Connection
|
||||
}
|
||||
|
||||
fun getDriver(url: String?) {
|
||||
DriverManager.getDriver(<!TYPE_MISMATCH!>url<!>)
|
||||
DriverManager.getDriver(url!!) : java.sql.Driver
|
||||
}
|
||||
|
||||
fun registerDriver(driver: java.sql.Driver?) {
|
||||
DriverManager.registerDriver(<!TYPE_MISMATCH!>driver<!>)
|
||||
DriverManager.registerDriver(driver!!)
|
||||
}
|
||||
|
||||
fun getDrivers() {
|
||||
// todo fix to java.util.Enumeration<java.sql.Driver> bug in compiler fixed
|
||||
DriverManager.getDrivers() : java.util.Enumeration<*>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun getMetaData(rs: java.sql.ResultSet) {
|
||||
rs.getMetaData() : java.sql.ResultSetMetaData
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
fun executeQuery(statement: java.sql.Statement, cmd: String?) {
|
||||
statement.executeQuery(<!TYPE_MISMATCH!>cmd<!>)
|
||||
statement.executeQuery(cmd!!) : java.sql.ResultSet
|
||||
}
|
||||
|
||||
fun executeQuery(statement: java.sql.PreparedStatement) {
|
||||
statement.executeQuery() : java.sql.ResultSet
|
||||
}
|
||||
|
||||
fun executeUpdate(statement: java.sql.Statement, cmd: String?) {
|
||||
statement.<!NONE_APPLICABLE!>executeUpdate<!>(cmd)
|
||||
statement.executeUpdate(cmd!!)
|
||||
}
|
||||
@@ -13,18 +13,16 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.checkers;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import java.io.File;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.test.InnerTestClasses;
|
||||
import org.jetbrains.jet.test.TestMetadata;
|
||||
|
||||
import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve;
|
||||
import java.io.File;
|
||||
|
||||
/** This class is generated by {@link org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve}. DO NOT MODIFY MANUALLY */
|
||||
@InnerTestClasses({JetDiagnosticsTestGenerated.Tests.class, JetDiagnosticsTestGenerated.Script.class})
|
||||
@@ -2047,6 +2045,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/jdk-annotations")
|
||||
@InnerTestClasses({Jdk_annotations.Sql.class})
|
||||
public static class Jdk_annotations extends AbstractDiagnosticsTestWithEagerResolve {
|
||||
public void testAllFilesPresentInJdk_annotations() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve", new File("compiler/testData/diagnostics/tests/jdk-annotations"), "kt", true);
|
||||
@@ -2067,6 +2066,35 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
doTest("compiler/testData/diagnostics/tests/jdk-annotations/ArrayListToArray.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/jdk-annotations/sql")
|
||||
public static class Sql extends AbstractDiagnosticsTestWithEagerResolve {
|
||||
public void testAllFilesPresentInSql() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve", new File("compiler/testData/diagnostics/tests/jdk-annotations/sql"), "kt", true);
|
||||
}
|
||||
|
||||
@TestMetadata("DriverManager.kt")
|
||||
public void testDriverManager() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/jdk-annotations/sql/DriverManager.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ResultSet.kt")
|
||||
public void testResultSet() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/jdk-annotations/sql/ResultSet.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("Statement.kt")
|
||||
public void testStatement() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/jdk-annotations/sql/Statement.kt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static Test innerSuite() {
|
||||
TestSuite suite = new TestSuite("Jdk_annotations");
|
||||
suite.addTestSuite(Jdk_annotations.class);
|
||||
suite.addTestSuite(Sql.class);
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/library")
|
||||
@@ -3446,7 +3474,7 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
suite.addTest(Inference.innerSuite());
|
||||
suite.addTestSuite(Infos.class);
|
||||
suite.addTestSuite(J_k.class);
|
||||
suite.addTestSuite(Jdk_annotations.class);
|
||||
suite.addTest(Jdk_annotations.innerSuite());
|
||||
suite.addTestSuite(Library.class);
|
||||
suite.addTestSuite(NullabilityAndAutoCasts.class);
|
||||
suite.addTestSuite(Objects.class);
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
<root>
|
||||
<!-- java.sql.DriverManager -->
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Driver getDriver(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Driver getDriver(java.lang.String) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String, java.util.Properties)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String, java.util.Properties) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) 1'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) 2'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager java.sql.Connection getConnection(java.lang.String, java.lang.String, java.lang.String) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.DriverManager void registerDriver(java.sql.Driver) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<!-- TODO: provide correct signature after bug in compiler fixed-->
|
||||
<item name='java.sql.DriverManager java.util.Enumeration getDrivers()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<!-- java.sql.ResultSet -->
|
||||
<item name='java.sql.ResultSet java.sql.ResultSetMetaData getMetaData()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<!-- java.sql.Statement -->
|
||||
<item name='java.sql.Statement java.sql.ResultSet executeQuery(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.Statement java.sql.ResultSet executeQuery(java.lang.String) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='java.sql.Statement int executeUpdate(java.lang.String) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<!-- java.sql.PreparedStatement -->
|
||||
<item name='java.sql.PreparedStatement java.sql.ResultSet executeQuery()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -8,17 +8,17 @@ import java.util.Properties
|
||||
/**
|
||||
* create connection for the specified jdbc url with no credentials
|
||||
*/
|
||||
fun getConnection(url : String) : Connection = DriverManager.getConnection(url)!!
|
||||
fun getConnection(url : String) : Connection = DriverManager.getConnection(url)
|
||||
|
||||
/**
|
||||
* create connection for the specified jdbc url and properties
|
||||
*/
|
||||
fun getConnection(url : String, info : Map<String, String>) : Connection = DriverManager.getConnection(url, info.toProperties())!!
|
||||
fun getConnection(url : String, info : Map<String, String>) : Connection = DriverManager.getConnection(url, info.toProperties())
|
||||
|
||||
/**
|
||||
* create connection for the specified jdbc url and credentials
|
||||
*/
|
||||
fun getConnection(url : String, user : String, password : String) : Connection = DriverManager.getConnection(url, user, password)!!
|
||||
fun getConnection(url : String, user : String, password : String) : Connection = DriverManager.getConnection(url, user, password)
|
||||
|
||||
/**
|
||||
* Executes specified block with connection and close connection after this
|
||||
@@ -65,11 +65,7 @@ fun Connection.update(template : StringTemplate) : Int {
|
||||
fun <T> Connection.query(sql: String, block: (ResultSet) -> T): T {
|
||||
return statement{
|
||||
val rs = it.executeQuery(sql)
|
||||
if (rs != null) {
|
||||
block(rs)
|
||||
} else {
|
||||
throw IllegalStateException("No ResultSet returned executeQuery($sql) on $this")
|
||||
}
|
||||
block(rs)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,7 +218,7 @@ class PreparedStatementBuilder(val template : StringTemplate, val connection : C
|
||||
out.append(if (constantText) it else "?")
|
||||
constantText = !constantText
|
||||
}
|
||||
return out.toString() ?: ""
|
||||
return out.toString()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,11 +17,7 @@ fun PreparedStatement.update(): Int {
|
||||
fun <T> PreparedStatement.query(block: (ResultSet) -> T): T {
|
||||
try {
|
||||
val resultSet = this.executeQuery()
|
||||
if (resultSet == null) {
|
||||
throw IllegalStateException("No ResultSet returned from $this")
|
||||
} else {
|
||||
return block(resultSet)
|
||||
}
|
||||
return block(resultSet)
|
||||
} finally {
|
||||
close()
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ fun <T> ResultSet.map(fn : (ResultSet) -> T) : jet.Iterable<T> {
|
||||
* Returns array with column names
|
||||
*/
|
||||
fun ResultSet.getColumnNames() : jet.Array<String> {
|
||||
val meta = getMetaData()!!
|
||||
val meta = getMetaData()
|
||||
return jet.Array<String>(meta.getColumnCount(), {meta.getColumnName(it + 1) ?: it.toString()})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user