private def createArray()

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
    }
  }