package Ġcom . la id pack . s our cer er . generated Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġcom . la id pack . generator . api . View Element Ċ import Ġjava . lang . Class Ċ import Ġkotlin . String Ċ Ċ @ View Element ( ĊĠĠĠĠĠĠĠ Ġelement Type Ġ= ĠButton Factory . elementType , ĊĠĠĠĠĠĠĠ Ġattributes Clazz Ġ= ĠButton Attributes :: class Ċ ) Ċ open Ġclass ĠButton Factory < T View Ġ: ĠButton , ĠT Attributes Ġ: ĠButton Attributes >( instance Type : ĠClass < T View >, Ġattributes Type : ĠClass < T Attributes >) Ġ: ĠTextView Factory < T View , ĠT Attributes >( instance Type , Ġattributes Type ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġelement Type : ĠString Ġ= ĠComp anion . elementType ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Instance ( context : ĠContext ): ĠView Ġ= ĠButton ( context ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġelement Type : ĠString Ġ= Ġ" button " ĊĊĠĠĠĠĠĠĠ Ġinline Ġoperator Ġfun Ġ< re ified ĠT View Ġ: ĠButton , Ġre ified ĠT Attributes Ġ: ĠButton Attributes > Ġinvoke () Ġ= ĠButton Factory ( T View :: class . java , ĠT Attributes :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ