
scalikejdbc.async.internal.RowDataResultSet.scala Maven / Gradle / Ivy
The newest version!
package scalikejdbc.async.internal
import java.io.{ StringReader, ByteArrayInputStream, Reader, InputStream }
import java.math.BigDecimal
import java.net.URL
import java.sql._
import java.util
import java.util.Calendar
import com.github.mauricio.async.db.RowData
import org.joda.time.{ LocalTime, LocalDate, LocalDateTime, DateTime }
import scalikejdbc._
import scala.collection.mutable
private[scalikejdbc] class RowDataResultSet(var currentRow: Option[RowData], var other: Iterable[RowData]) extends ResultSet {
var closed = false
override def next(): Boolean = {
currentRow = other.headOption
other = other.drop(1)
currentRow.isDefined
}
private def notsupported = throw new SQLFeatureNotSupportedException
private def notvalid = throw new SQLException(s"Not valid method called on forward only, read only result set")
private def expectedbutnotsupported = throw new UnsupportedOperationException
override def getType: Int = ResultSet.TYPE_FORWARD_ONLY
override def isBeforeFirst: Boolean = notsupported
override def updateString(columnIndex: Int, x: String): Unit = notvalid
override def updateString(columnLabel: String, x: String): Unit = notvalid
override def getTimestamp(columnIndex: Int): Timestamp = timestamp(columnIndex)
override def getTimestamp(columnLabel: String): Timestamp = timestamp(columnLabel)
override def getTimestamp(columnIndex: Int, cal: Calendar): Timestamp = {
cal.setTimeInMillis(timestamp(columnIndex).getTime)
new Timestamp(cal.getTimeInMillis)
}
override def getTimestamp(columnLabel: String, cal: Calendar): Timestamp = {
cal.setTimeInMillis(timestamp(columnLabel).getTime)
new Timestamp(cal.getTimeInMillis)
}
override def updateNString(columnIndex: Int, nString: String): Unit = notvalid
override def updateNString(columnLabel: String, nString: String): Unit = notvalid
override def clearWarnings(): Unit = {
//noop
}
override def updateTimestamp(columnIndex: Int, x: Timestamp): Unit = notvalid
override def updateTimestamp(columnLabel: String, x: Timestamp): Unit = notvalid
override def updateByte(columnIndex: Int, x: Byte): Unit = notvalid
override def updateByte(columnLabel: String, x: Byte): Unit = notvalid
override def updateBigDecimal(columnIndex: Int, x: BigDecimal): Unit = notvalid
override def updateBigDecimal(columnLabel: String, x: BigDecimal): Unit = notvalid
override def updateDouble(columnIndex: Int, x: Double): Unit = notvalid
override def updateDouble(columnLabel: String, x: Double): Unit = notvalid
override def updateDate(columnIndex: Int, x: Date): Unit = notvalid
override def updateDate(columnLabel: String, x: Date): Unit = notvalid
override def isAfterLast: Boolean = notsupported
override def updateBoolean(columnIndex: Int, x: Boolean): Unit = notvalid
override def updateBoolean(columnLabel: String, x: Boolean): Unit = notvalid
override def getBinaryStream(columnIndex: Int): InputStream = new ByteArrayInputStream(bytes(columnIndex))
override def getBinaryStream(columnLabel: String): InputStream = new ByteArrayInputStream(bytes(columnLabel))
override def beforeFirst(): Unit = notvalid
override def updateNCharacterStream(columnIndex: Int, x: Reader, length: Long): Unit = notvalid
override def updateNCharacterStream(columnLabel: String, reader: Reader, length: Long): Unit = notvalid
override def updateNCharacterStream(columnIndex: Int, x: Reader): Unit = notvalid
override def updateNCharacterStream(columnLabel: String, reader: Reader): Unit = notvalid
override def updateNClob(columnIndex: Int, nClob: NClob): Unit = notvalid
override def updateNClob(columnLabel: String, nClob: NClob): Unit = notvalid
override def updateNClob(columnIndex: Int, reader: Reader, length: Long): Unit = notvalid
override def updateNClob(columnLabel: String, reader: Reader, length: Long): Unit = notvalid
override def updateNClob(columnIndex: Int, reader: Reader): Unit = notvalid
override def updateNClob(columnLabel: String, reader: Reader): Unit = notvalid
override def last(): Boolean = notvalid
override def isLast: Boolean = notsupported
override def getNClob(columnIndex: Int): NClob = notsupported
override def getNClob(columnLabel: String): NClob = notsupported
override def getCharacterStream(columnIndex: Int): Reader = new StringReader(string(columnIndex))
override def getCharacterStream(columnLabel: String): Reader = new StringReader(string(columnLabel))
override def updateArray(columnIndex: Int, x: Array): Unit = notvalid
override def updateArray(columnLabel: String, x: Array): Unit = notvalid
override def updateBlob(columnIndex: Int, x: Blob): Unit = notvalid
override def updateBlob(columnLabel: String, x: Blob): Unit = notvalid
override def updateBlob(columnIndex: Int, inputStream: InputStream, length: Long): Unit = notvalid
override def updateBlob(columnLabel: String, inputStream: InputStream, length: Long): Unit = notvalid
override def updateBlob(columnIndex: Int, inputStream: InputStream): Unit = notvalid
override def updateBlob(columnLabel: String, inputStream: InputStream): Unit = notvalid
override def getDouble(columnIndex: Int): Double = double(columnIndex)
override def getDouble(columnLabel: String): Double = double(columnLabel)
override def getArray(columnIndex: Int): Array = notsupported
override def getArray(columnLabel: String): Array = notsupported
override def isFirst: Boolean = notsupported
override def getURL(columnIndex: Int): URL = url(columnIndex)
override def getURL(columnLabel: String): URL = url(columnLabel)
override def updateRow(): Unit = notvalid
override def insertRow(): Unit = notvalid
override def getMetaData: ResultSetMetaData = expectedbutnotsupported
override def updateBinaryStream(columnIndex: Int, x: InputStream, length: Int): Unit = notvalid
override def updateBinaryStream(columnLabel: String, x: InputStream, length: Int): Unit = notvalid
override def updateBinaryStream(columnIndex: Int, x: InputStream, length: Long): Unit = notvalid
override def updateBinaryStream(columnLabel: String, x: InputStream, length: Long): Unit = notvalid
override def updateBinaryStream(columnIndex: Int, x: InputStream): Unit = notvalid
override def updateBinaryStream(columnLabel: String, x: InputStream): Unit = notvalid
override def absolute(row: Int): Boolean = notvalid
override def updateRowId(columnIndex: Int, x: RowId): Unit = notvalid
override def updateRowId(columnLabel: String, x: RowId): Unit = notvalid
override def getRowId(columnIndex: Int): RowId = notsupported
override def getRowId(columnLabel: String): RowId = notsupported
override def moveToInsertRow(): Unit = notvalid
override def rowInserted(): Boolean = notsupported
override def getFloat(columnIndex: Int): Float = float(columnIndex)
override def getFloat(columnLabel: String): Float = float(columnLabel)
override def getBigDecimal(columnIndex: Int, scale: Int): BigDecimal = bigDecimal(columnIndex).setScale(scale)
override def getBigDecimal(columnLabel: String, scale: Int): BigDecimal = bigDecimal(columnLabel).setScale(scale)
override def getBigDecimal(columnIndex: Int): BigDecimal = bigDecimal(columnIndex)
override def getBigDecimal(columnLabel: String): BigDecimal = bigDecimal(columnLabel)
override def getClob(columnIndex: Int): Clob = notsupported
override def getClob(columnLabel: String): Clob = notsupported
override def getRow: Int = notsupported
override def getLong(columnIndex: Int): Long = long(columnIndex)
override def getLong(columnLabel: String): Long = long(columnLabel)
override def getHoldability: Int = ResultSet.CLOSE_CURSORS_AT_COMMIT
override def updateFloat(columnIndex: Int, x: Float): Unit = notsupported
override def updateFloat(columnLabel: String, x: Float): Unit = notsupported
override def afterLast(): Unit = notvalid
override def refreshRow(): Unit = notvalid
override def getNString(columnIndex: Int): String = notsupported
override def getNString(columnLabel: String): String = notsupported
override def deleteRow(): Unit = notvalid
override def getConcurrency: Int = ResultSet.CONCUR_READ_ONLY
override def updateObject(columnIndex: Int, x: scala.Any, scaleOrLength: Int): Unit = notvalid
override def updateObject(columnIndex: Int, x: scala.Any): Unit = notvalid
override def updateObject(columnLabel: String, x: scala.Any, scaleOrLength: Int): Unit = notvalid
override def updateObject(columnLabel: String, x: scala.Any): Unit = notvalid
override def getFetchSize: Int = expectedbutnotsupported
override def getTime(columnIndex: Int): Time = time(columnIndex)
override def getTime(columnLabel: String): Time = time(columnLabel)
override def getTime(columnIndex: Int, cal: Calendar): Time = {
cal.setTimeInMillis(time(columnIndex).getTime)
new Time(cal.getTimeInMillis)
}
override def getTime(columnLabel: String, cal: Calendar): Time = {
cal.setTimeInMillis(time(columnLabel).getTime)
new Time(cal.getTimeInMillis)
}
override def updateCharacterStream(columnIndex: Int, x: Reader, length: Int): Unit = notvalid
override def updateCharacterStream(columnLabel: String, reader: Reader, length: Int): Unit = notvalid
override def updateCharacterStream(columnIndex: Int, x: Reader, length: Long): Unit = notvalid
override def updateCharacterStream(columnLabel: String, reader: Reader, length: Long): Unit = notvalid
override def updateCharacterStream(columnIndex: Int, x: Reader): Unit = notvalid
override def updateCharacterStream(columnLabel: String, reader: Reader): Unit = notvalid
override def getByte(columnIndex: Int): Byte = byte(columnIndex)
override def getByte(columnLabel: String): Byte = byte(columnLabel)
override def getBoolean(columnIndex: Int): Boolean = boolean(columnIndex)
override def getBoolean(columnLabel: String): Boolean = boolean(columnLabel)
override def setFetchDirection(direction: Int): Unit = {
if (direction != ResultSet.FETCH_FORWARD) {
notvalid
}
}
override def getFetchDirection: Int = ResultSet.FETCH_FORWARD
override def updateRef(columnIndex: Int, x: Ref): Unit = notvalid
override def updateRef(columnLabel: String, x: Ref): Unit = notvalid
override def getAsciiStream(columnIndex: Int): InputStream = new ByteArrayInputStream(string(columnIndex).getBytes("UTF8"))
override def getAsciiStream(columnLabel: String): InputStream = new ByteArrayInputStream(string(columnLabel).getBytes("UTF8"))
override def getShort(columnIndex: Int): Short = short(columnIndex)
override def getShort(columnLabel: String): Short = short(columnLabel)
override def getObject(columnIndex: Int): AnyRef = whatIsAny(any(columnIndex))
private def whatIsAny(any: Any): AnyRef = {
if (any == null) {
null
} else {
any match {
case s: Short => short2Short(s)
case i: Int => int2Integer(i)
case f: Float => float2Float(f)
case d: Double => double2Double(d)
case b: Byte => byte2Byte(b)
case c: Char => char2Character(c)
case b: Boolean => boolean2Boolean(b)
case ref: AnyRef => ref
case _ => throw new SQLException(s"Unknown class for getObject: ${any.getClass}")
}
}
}
override def getObject(columnLabel: String): AnyRef = whatIsAny(any(columnLabel))
override def getObject(columnIndex: Int, map: util.Map[String, Class[_]]): AnyRef = notsupported
override def getObject(columnLabel: String, map: util.Map[String, Class[_]]): AnyRef = notsupported
override def getObject[T](columnIndex: Int, `type`: Class[T]): T = {
val ref = getObject(columnIndex)
if (ref != null && `type`.isInstance(ref)) {
return ref.asInstanceOf[T]
} else {
throw new SQLException(s"Object of class ${ref.getClass} is not an instance of ${`type`}");
}
}
override def getObject[T](columnLabel: String, `type`: Class[T]): T = {
val ref = getObject(columnLabel)
if (ref != null && `type`.isInstance(ref)) {
return ref.asInstanceOf[T]
} else {
throw new SQLException(s"Object of class ${ref.getClass} is not an instance of ${`type`}");
}
}
override def updateShort(columnIndex: Int, x: Short): Unit = notvalid
override def updateShort(columnLabel: String, x: Short): Unit = notvalid
override def getNCharacterStream(columnIndex: Int): Reader = notsupported
override def getNCharacterStream(columnLabel: String): Reader = notsupported
override def close(): Unit = {
closed = true;
}
override def relative(rows: Int): Boolean = notvalid
override def updateInt(columnIndex: Int, x: Int): Unit = notvalid
override def updateInt(columnLabel: String, x: Int): Unit = notvalid
override def wasNull(): Boolean = expectedbutnotsupported
override def rowUpdated(): Boolean = notsupported
override def getRef(columnIndex: Int): Ref = notsupported
override def getRef(columnLabel: String): Ref = notsupported
override def updateLong(columnIndex: Int, x: Long): Unit = notvalid
override def updateLong(columnLabel: String, x: Long): Unit = notvalid
override def moveToCurrentRow(): Unit = notvalid
override def isClosed: Boolean = closed
override def updateClob(columnIndex: Int, x: Clob): Unit = notvalid
override def updateClob(columnLabel: String, x: Clob): Unit = notvalid
override def updateClob(columnIndex: Int, reader: Reader, length: Long): Unit = notvalid
override def updateClob(columnLabel: String, reader: Reader, length: Long): Unit = notvalid
override def updateClob(columnIndex: Int, reader: Reader): Unit = notvalid
override def updateClob(columnLabel: String, reader: Reader): Unit = notvalid
override def findColumn(columnLabel: String): Int = expectedbutnotsupported
override def getWarnings: SQLWarning = null
override def getDate(columnIndex: Int): Date = date(columnIndex)
override def getDate(columnLabel: String): Date = date(columnLabel)
override def getDate(columnIndex: Int, cal: Calendar): Date = {
cal.setTimeInMillis(date(columnIndex).getTime)
new Date(cal.getTimeInMillis)
}
override def getDate(columnLabel: String, cal: Calendar): Date = {
cal.setTimeInMillis(date(columnLabel).getTime)
new Date(cal.getTimeInMillis)
}
override def getCursorName: String = notsupported
override def updateNull(columnIndex: Int): Unit = notvalid
override def updateNull(columnLabel: String): Unit = notvalid
override def getStatement: Statement = expectedbutnotsupported
override def cancelRowUpdates(): Unit = notvalid
override def getSQLXML(columnIndex: Int): SQLXML = notsupported
override def getSQLXML(columnLabel: String): SQLXML = notsupported
override def getUnicodeStream(columnIndex: Int): InputStream = new ByteArrayInputStream(string(columnIndex).getBytes("UTF8"))
override def getUnicodeStream(columnLabel: String): InputStream = new ByteArrayInputStream(string(columnLabel).getBytes("UTF8"))
override def getInt(columnIndex: Int): Int = int(columnIndex)
override def getInt(columnLabel: String): Int = int(columnLabel)
override def updateTime(columnIndex: Int, x: Time): Unit = notvalid
override def updateTime(columnLabel: String, x: Time): Unit = notvalid
override def setFetchSize(rows: Int): Unit = expectedbutnotsupported
override def previous(): Boolean = notvalid
override def updateAsciiStream(columnIndex: Int, x: InputStream, length: Int): Unit = notvalid
override def updateAsciiStream(columnLabel: String, x: InputStream, length: Int): Unit = notvalid
override def updateAsciiStream(columnIndex: Int, x: InputStream, length: Long): Unit = notvalid
override def updateAsciiStream(columnLabel: String, x: InputStream, length: Long): Unit = notvalid
override def updateAsciiStream(columnIndex: Int, x: InputStream): Unit = notvalid
override def updateAsciiStream(columnLabel: String, x: InputStream): Unit = notvalid
override def rowDeleted(): Boolean = notsupported
override def getBlob(columnIndex: Int): Blob = notsupported
override def getBlob(columnLabel: String): Blob = notsupported
override def first(): Boolean = notvalid
override def getBytes(columnIndex: Int): scala.Array[Byte] = bytes(columnIndex)
override def getBytes(columnLabel: String): scala.Array[Byte] = bytes(columnLabel)
override def updateBytes(columnIndex: Int, x: scala.Array[Byte]): Unit = notvalid
override def updateBytes(columnLabel: String, x: scala.Array[Byte]): Unit = notvalid
override def updateSQLXML(columnIndex: Int, xmlObject: SQLXML): Unit = notvalid
override def updateSQLXML(columnLabel: String, xmlObject: SQLXML): Unit = notvalid
override def getString(columnIndex: Int): String = string(columnIndex)
override def getString(columnLabel: String): String = string(columnLabel)
override def unwrap[T](iface: Class[T]): T = notvalid
override def isWrapperFor(iface: Class[_]): Boolean = notvalid
private def any(columnIndex: Int): Any = {
// To be compatible with JDBC, index should be 1-origin
// But postgresql-async/mysql-async is 0-origin
val index0origin = columnIndex - 1
currentRow.map(_.apply(index0origin)).orNull[Any]
}
private def any(columnLabel: String): Any = currentRow.map(_.apply(columnLabel)).orNull[Any]
private def anyOpt(columnIndex: Int): Option[Any] = Option(any(columnIndex))
private def anyOpt(columnLabel: String): Option[Any] = Option(any(columnLabel))
private def anyToBigDecimal(any: Any): java.math.BigDecimal = any match {
case null => null
case bd: java.math.BigDecimal => bd
case bd: scala.BigDecimal => bd.underlying
case str: String => new java.math.BigDecimal(str)
case _ => new java.math.BigDecimal(any.toString)
}
private def bigDecimal(columnIndex: Int): java.math.BigDecimal = anyToBigDecimal(any(columnIndex))
private def bigDecimal(columnLabel: String): java.math.BigDecimal = anyToBigDecimal(any(columnLabel))
private def bigDecimalOpt(columnIndex: Int): Option[java.math.BigDecimal] = Option(bigDecimal(columnIndex))
private def bigDecimalOpt(columnLabel: String): Option[java.math.BigDecimal] = Option(bigDecimal(columnLabel))
private def anyToBytes(any: Any): scala.Array[Byte] = any.asInstanceOf[scala.Array[Byte]]
private def bytes(columnIndex: Int): scala.Array[Byte] = anyToBytes(any(columnIndex))
private def bytes(columnLabel: String): scala.Array[Byte] = anyToBytes(any(columnLabel))
private def bytesOpt(columnIndex: Int): Option[scala.Array[Byte]] = Option(bytes(columnIndex))
private def bytesOpt(columnLabel: String): Option[scala.Array[Byte]] = Option(bytes(columnLabel))
private def anyToDate(any: Any): java.sql.Date = any match {
case null => null
case d: java.sql.Date => d
case TimeInMillis(ms) => new UnixTimeInMillisConverter(ms).toSqlDate
case other => throw new UnsupportedOperationException(
s"Please send a feedback to the library maintainers about supporting ${other.getClass} for #date!")
}
private def date(columnIndex: Int): java.sql.Date = anyToDate(any(columnIndex))
private def date(columnLabel: String): java.sql.Date = anyToDate(any(columnLabel))
private def dateOpt(columnIndex: Int): Option[java.sql.Date] = Option(date(columnIndex))
private def dateOpt(columnLabel: String): Option[java.sql.Date] = Option(date(columnLabel))
private def anyToString(any: Any): String = any match {
case null => null
case str: String => str
case _ => any.toString
}
private def string(columnIndex: Int): String = anyToString(any(columnIndex))
private def string(columnLabel: String): String = anyToString(any(columnLabel))
private def stringOpt(columnIndex: Int): Option[String] = Option(string(columnIndex))
private def stringOpt(columnLabel: String): Option[String] = Option(string(columnLabel))
private def anyToTime(any: Any): java.sql.Time = any match {
case null => null
case t: java.sql.Time => t
case TimeInMillis(ms) => new java.sql.Time(ms)
case other => throw new UnsupportedOperationException(
s"Please send a feedback to the library maintainers about supporting ${other.getClass} for #time!")
}
private def time(columnIndex: Int): java.sql.Time = anyToTime(any(columnIndex))
private def time(columnLabel: String): java.sql.Time = anyToTime(any(columnLabel))
private def timeOpt(columnIndex: Int): Option[java.sql.Time] = Option(time(columnIndex))
private def timeOpt(columnLabel: String): Option[java.sql.Time] = Option(time(columnLabel))
private def anyToTimestamp(any: Any): java.sql.Timestamp = any match {
case null => null
case t: java.sql.Timestamp => t
case TimeInMillis(ms) => new java.sql.Timestamp(ms)
case other => throw new UnsupportedOperationException(
s"Please send a feedback to the library maintainers about supporting ${other.getClass} for #timestamp!")
}
private def timestamp(columnIndex: Int): java.sql.Timestamp = anyToTimestamp(any(columnIndex))
private def timestamp(columnLabel: String): java.sql.Timestamp = anyToTimestamp(any(columnLabel))
private def timestampOpt(columnIndex: Int): Option[java.sql.Timestamp] = Option(timestamp(columnIndex))
private def timestampOpt(columnLabel: String): Option[java.sql.Timestamp] = Option(timestamp(columnLabel))
private def anyToDateTime(any: Any): DateTime = any match {
case null => null
case dt: DateTime => dt
case TimeInMillis(ms) => new DateTime(ms)
case other => throw new UnsupportedOperationException(
s"Please send a feedback to the library maintainers about supporting ${other.getClass} for #jodaDateTime!")
}
private def jodaDateTime(columnIndex: Int): DateTime = anyToDateTime(any(columnIndex))
private def jodaDateTime(columnLabel: String): DateTime = anyToDateTime(any(columnLabel))
private def jodaDateTimeOpt(columnIndex: Int): Option[DateTime] = Option(jodaDateTime(columnIndex))
private def jodaDateTimeOpt(columnLabel: String): Option[DateTime] = Option(jodaDateTime(columnLabel))
private def anyToLocalDateTime(any: Any): LocalDateTime = any match {
case null => null
case ldt: LocalDateTime => ldt
case TimeInMillis(ms) => new LocalDateTime(ms)
case other => throw new UnsupportedOperationException(
s"Please send a feedback to the library maintainers about supporting ${other.getClass} for #jodaLocalDateTime!")
}
private def jodaLocalDateTime(columnIndex: Int): LocalDateTime = anyToLocalDateTime(any(columnIndex))
private def jodaLocalDateTime(columnLabel: String): LocalDateTime = anyToLocalDateTime(any(columnLabel))
private def jodaLocalDateTimeOpt(columnIndex: Int): Option[LocalDateTime] = Option(jodaLocalDateTime(columnIndex))
private def jodaLocalDateTimeOpt(columnLabel: String): Option[LocalDateTime] = Option(jodaLocalDateTime(columnLabel))
private def anyToLocalDate(any: Any): LocalDate = any match {
case null => null
case ld: LocalDate => ld
case TimeInMillis(ms) => new LocalDate(ms)
case other => throw new UnsupportedOperationException(
s"Please send a feedback to the library maintainers about supporting ${other.getClass} for #jodaLocalDate!")
}
private def jodaLocalDate(columnIndex: Int): LocalDate = anyToLocalDate(any(columnIndex))
private def jodaLocalDate(columnLabel: String): LocalDate = anyToLocalDate(any(columnLabel))
private def jodaLocalDateOpt(columnIndex: Int): Option[LocalDate] = Option(jodaLocalDate(columnIndex))
private def jodaLocalDateOpt(columnLabel: String): Option[LocalDate] = Option(jodaLocalDate(columnLabel))
private def anyToLocalTime(any: Any): LocalTime = any match {
case null => null
case lt: LocalTime => lt
case TimeInMillis(ms) => new LocalTime(ms)
case other => throw new UnsupportedOperationException(
s"Please send a feedback to the library maintainers about supporting ${other.getClass} for #jodaLocalTime!")
}
private def jodaLocalTime(columnIndex: Int): LocalTime = anyToLocalTime(any(columnIndex))
private def jodaLocalTime(columnLabel: String): LocalTime = anyToLocalTime(any(columnLabel))
private def jodaLocalTimeOpt(columnIndex: Int): Option[LocalTime] = Option(jodaLocalTime(columnIndex))
private def jodaLocalTimeOpt(columnLabel: String): Option[LocalTime] = Option(jodaLocalTime(columnLabel))
private def anyToUrl(any: Any): java.net.URL = any match {
case null => null
case url: java.net.URL => url
case str: String => new java.net.URL(str)
case _ => new java.net.URL(any.toString)
}
private def url(columnIndex: Int): java.net.URL = anyToUrl(any(columnIndex))
private def url(columnLabel: String): java.net.URL = anyToUrl(any(columnLabel))
private def urlOpt(columnIndex: Int): Option[java.net.URL] = Option(url(columnIndex))
private def urlOpt(columnLabel: String): Option[java.net.URL] = Option(url(columnLabel))
private def anyToNullableBoolean(any: Any): java.lang.Boolean = any match {
case null => null
case b: java.lang.Boolean => b
case b: Boolean => b
case s: String => {
try s.toInt != 0
catch { case e: NumberFormatException => !s.isEmpty }
}.asInstanceOf[java.lang.Boolean]
case v => (v != 0).asInstanceOf[java.lang.Boolean]
}
private def nullableBoolean(columnIndex: Int): java.lang.Boolean = anyToNullableBoolean(any(columnIndex))
private def nullableBoolean(columnLabel: String): java.lang.Boolean = anyToNullableBoolean(any(columnLabel))
private def boolean(columnIndex: Int): Boolean = nullableBoolean(columnIndex).asInstanceOf[Boolean]
private def boolean(columnLabel: String): Boolean = nullableBoolean(columnLabel).asInstanceOf[Boolean]
private def booleanOpt(columnIndex: Int): Option[Boolean] = opt[Boolean](nullableBoolean(columnIndex))
private def booleanOpt(columnLabel: String): Option[Boolean] = opt[Boolean](nullableBoolean(columnLabel))
private def anyToNullableByte(any: Any): java.lang.Byte = any match {
case null => null
case _ => java.lang.Byte.valueOf(any.toString)
}
private def nullableByte(columnIndex: Int): java.lang.Byte = anyToNullableByte(any(columnIndex))
private def nullableByte(columnLabel: String): java.lang.Byte = anyToNullableByte(any(columnLabel))
private def byte(columnIndex: Int): Byte = nullableByte(columnIndex).asInstanceOf[Byte]
private def byte(columnLabel: String): Byte = nullableByte(columnLabel).asInstanceOf[Byte]
private def byteOpt(columnIndex: Int): Option[Byte] = opt[Byte](nullableByte(columnIndex))
private def byteOpt(columnLabel: String): Option[Byte] = opt[Byte](nullableByte(columnLabel))
private def anyToNullableDouble(any: Any): java.lang.Double = any match {
case null => null
case _ => java.lang.Double.valueOf(any.toString)
}
private def nullableDouble(columnIndex: Int): java.lang.Double = anyToNullableDouble(any(columnIndex))
private def nullableDouble(columnLabel: String): java.lang.Double = anyToNullableDouble(any(columnLabel))
private def double(columnIndex: Int): Double = nullableDouble(columnIndex).asInstanceOf[Double]
private def double(columnLabel: String): Double = nullableDouble(columnLabel).asInstanceOf[Double]
private def doubleOpt(columnIndex: Int): Option[Double] = opt[Double](nullableDouble(columnIndex))
private def doubleOpt(columnLabel: String): Option[Double] = opt[Double](nullableDouble(columnLabel))
private def anyToNullableFloat(any: Any): java.lang.Float = any match {
case null => null
case _ => java.lang.Float.valueOf(any.toString)
}
private def nullableFloat(columnIndex: Int): java.lang.Float = anyToNullableFloat(any(columnIndex))
private def nullableFloat(columnLabel: String): java.lang.Float = anyToNullableFloat(any(columnLabel))
private def float(columnIndex: Int): Float = nullableFloat(columnIndex).asInstanceOf[Float]
private def float(columnLabel: String): Float = nullableFloat(columnLabel).asInstanceOf[Float]
private def floatOpt(columnIndex: Int): Option[Float] = opt[Float](nullableFloat(columnIndex))
private def floatOpt(columnLabel: String): Option[Float] = opt[Float](nullableFloat(columnLabel))
private def anyToNullableInt(any: Any): java.lang.Integer = any match {
case null => null
case v: Float => v.toInt.asInstanceOf[java.lang.Integer]
case v: Double => v.toInt.asInstanceOf[java.lang.Integer]
case v => java.lang.Integer.valueOf(v.toString)
}
private def nullableInt(columnIndex: Int): java.lang.Integer = anyToNullableInt(any(columnIndex))
private def nullableInt(columnLabel: String): java.lang.Integer = anyToNullableInt(any(columnLabel))
private def int(columnIndex: Int): Int = nullableInt(columnIndex).asInstanceOf[Int]
private def int(columnLabel: String): Int = nullableInt(columnLabel).asInstanceOf[Int]
private def intOpt(columnIndex: Int): Option[Int] = opt[Int](nullableInt(columnIndex))
private def intOpt(columnLabel: String): Option[Int] = opt[Int](nullableInt(columnLabel))
private def anyToNullableLong(any: Any): java.lang.Long = any match {
case null => null
case v: Float => v.toLong.asInstanceOf[java.lang.Long]
case v: Double => v.toLong.asInstanceOf[java.lang.Long]
case v => java.lang.Long.valueOf(v.toString)
}
private def nullableLong(columnIndex: Int): java.lang.Long = anyToNullableLong(any(columnIndex))
private def nullableLong(columnLabel: String): java.lang.Long = anyToNullableLong(any(columnLabel))
private def long(columnIndex: Int): Long = nullableLong(columnIndex).asInstanceOf[Long]
private def long(columnLabel: String): Long = nullableLong(columnLabel).asInstanceOf[Long]
private def longOpt(columnIndex: Int): Option[Long] = opt[Long](nullableLong(columnIndex))
private def longOpt(columnLabel: String): Option[Long] = opt[Long](nullableLong(columnLabel))
private def anyToNullableShort(any: Any): java.lang.Short = any match {
case null => null
case v: Float => v.toShort.asInstanceOf[java.lang.Short]
case v: Double => v.toShort.asInstanceOf[java.lang.Short]
case v => java.lang.Short.valueOf(v.toString)
}
private def nullableShort(columnIndex: Int): java.lang.Short = anyToNullableShort(any(columnIndex))
private def nullableShort(columnLabel: String): java.lang.Short = anyToNullableShort(any(columnLabel))
private def short(columnIndex: Int): Short = nullableShort(columnIndex).asInstanceOf[Short]
private def short(columnLabel: String): Short = nullableShort(columnLabel).asInstanceOf[Short]
private def shortOpt(columnIndex: Int): Option[Short] = opt[Short](nullableShort(columnIndex))
private def shortOpt(columnLabel: String): Option[Short] = opt[Short](nullableShort(columnLabel))
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy