override def injectInners()

in src/main/scala/com/spotify/scio/AvroTypeInjector.scala [70:99]


  override def injectInners(source: ScTypeDefinition): Seq[String] = {
    source.extendsBlock.members
      .collect {
        case c: ScClass if avroAnnotation(c).isDefined =>
          val (annotated, other) =
            generatedCaseClasses(source.getQualifiedName.init, c).partition(
              _.contains(HasAvroAnnotationSuper)
            )
          (c, (annotated.headOption, other))
      }
      .collect { case (c, (Some(annotated), other)) =>
        val tupledMethod = getTupledMethod(c.getName, annotated)
        val applyPropsSignature =
          getApplyPropsSignature(annotated).mkString(",")
        val unapplyReturnTypes =
          getUnapplyReturnTypes(annotated).mkString(",")

        val companion = s"""|object ${c.getName} {
              |  def apply( $applyPropsSignature ): ${c.getName} = ???
              |  def unapply(x$$0: ${c.getName}): _root_.scala.Option[($unapplyReturnTypes)] = ???
              |  def fromGenericRecord: _root_.scala.Function1[_root_.org.apache.avro.generic.GenericRecord, ${c.getName} ] = ???
              |  def toGenericRecord: _root_.scala.Function1[ ${c.getName}, _root_.org.apache.avro.generic.GenericRecord] = ???
              |  def schema: _root_.org.apache.avro.Schema = ???
              |  def toPrettyString(indent: Int = 0): String = ???
              |  $tupledMethod
              |}""".stripMargin
        companion +: other.map(s => s.substring(0, s.lastIndexOf(')') + 1))
      }
      .flatten
  }