in flink-table/flink-table-planner/src/main/scala/org/apache/flink/table/util/python/PythonTableUtils.scala [223:376]
private def createArray(
elementType: TypeInformation[_],
length: Int,
getElement: Int => Any,
boxed: Boolean = false): Array[_] = {
elementType match {
case BasicTypeInfo.BOOLEAN_TYPE_INFO =>
if (!boxed) {
val array = new Array[Boolean](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Boolean]
}
array
} else {
val array = new Array[java.lang.Boolean](length)
for (i <- 0 until length) {
if (getElement(i) != null) {
array(i) = java.lang.Boolean.valueOf(getElement(i).asInstanceOf[Boolean])
} else {
array(i) = null
}
}
array
}
case BasicTypeInfo.BYTE_TYPE_INFO =>
if (!boxed) {
val array = new Array[Byte](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Byte]
}
array
} else {
val array = new Array[java.lang.Byte](length)
for (i <- 0 until length) {
if (getElement(i) != null) {
array(i) = java.lang.Byte.valueOf(getElement(i).asInstanceOf[Byte])
} else {
array(i) = null
}
}
array
}
case BasicTypeInfo.SHORT_TYPE_INFO =>
if (!boxed) {
val array = new Array[Short](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Short]
}
array
} else {
val array = new Array[java.lang.Short](length)
for (i <- 0 until length) {
if (getElement(i) != null) {
array(i) = java.lang.Short.valueOf(getElement(i).asInstanceOf[Short])
} else {
array(i) = null
}
}
array
}
case BasicTypeInfo.INT_TYPE_INFO =>
if (!boxed) {
val array = new Array[Int](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Int]
}
array
} else {
val array = new Array[java.lang.Integer](length)
for (i <- 0 until length) {
if (getElement(i) != null) {
array(i) = java.lang.Integer.valueOf(getElement(i).asInstanceOf[Int])
} else {
array(i) = null
}
}
array
}
case BasicTypeInfo.LONG_TYPE_INFO =>
if (!boxed) {
val array = new Array[Long](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Long]
}
array
} else {
val array = new Array[java.lang.Long](length)
for (i <- 0 until length) {
if (getElement(i) != null) {
array(i) = java.lang.Long.valueOf(getElement(i).asInstanceOf[Long])
} else {
array(i) = null
}
}
array
}
case BasicTypeInfo.FLOAT_TYPE_INFO =>
if (!boxed) {
val array = new Array[Float](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Float]
}
array
} else {
val array = new Array[java.lang.Float](length)
for (i <- 0 until length) {
if (getElement(i) != null) {
array(i) = java.lang.Float.valueOf(getElement(i).asInstanceOf[Float])
} else {
array(i) = null
}
}
array
}
case BasicTypeInfo.DOUBLE_TYPE_INFO =>
if (!boxed) {
val array = new Array[Double](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Double]
}
array
} else {
val array = new Array[java.lang.Double](length)
for (i <- 0 until length) {
if (getElement(i) != null) {
array(i) = java.lang.Double.valueOf(getElement(i).asInstanceOf[Double])
} else {
array(i) = null
}
}
array
}
case BasicTypeInfo.STRING_TYPE_INFO =>
val array = new Array[java.lang.String](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[java.lang.String]
}
array
case _ =>
val array = new Array[Object](length)
for (i <- 0 until length) {
array(i) = getElement(i).asInstanceOf[Object]
}
array
}
}