@ Override public TypeSpec buildDeleteWhereForClusteringColumn ( EntityMetaSignature signature , List < FieldSignatureInfo > clusteringCols , List < ClassSignatureInfo > classesSignature , ClassSignatureInfo lastSignature ) { final ClassSignatureInfo classSignature = classesSignature . get ( 0 ) ; final ClassSignatureInfo nextSignature = classesSignature . get ( 1 ) ; final FieldSignatureInfo clusteringColumnInfo = clusteringCols . get ( 0 ) ; final String rootClassName = signature . deleteClassName ( ) ; TypeName relationClassTypeName = ClassName . get ( DSL_PACKAGE , rootClassName + "." + classSignature . className + "." + DSL_RELATION ) ; final TypeSpec . Builder whereClassBuilder = TypeSpec . classBuilder ( classSignature . className ) . superclass ( classSignature . superType ) . addModifiers ( Modifier . PUBLIC , Modifier . FINAL ) . addMethod ( buildWhereConstructorWithOptions ( DELETE_DOT_WHERE ) ) . addMethod ( buildGetThis ( classSignature . returnClassType ) ) . addMethod ( buildGetMetaInternal ( signature . entityRawClass ) ) . addMethod ( buildGetEntityClass ( signature ) ) . addMethod ( buildGetRte ( ) ) . addMethod ( buildGetOptions ( ) ) . addMethod ( buildGetBoundValuesInternal ( ) ) . addMethod ( buildGetEncodedBoundValuesInternal ( ) ) ; final TypeSpec . Builder relationClassBuilder = TypeSpec . classBuilder ( DSL_RELATION ) . addModifiers ( Modifier . PUBLIC , Modifier . FINAL ) . addMethod ( buildColumnRelation ( EQ , nextSignature . returnClassType , clusteringColumnInfo , ReturnType . NEW ) ) ; augmentClusteringColRelationClassForWhereClause ( relationClassBuilder , clusteringColumnInfo , nextSignature , lastSignature ) ; whereClassBuilder . addMethod ( buildRelationMethod ( clusteringColumnInfo . fieldName , relationClassTypeName ) ) . addType ( relationClassBuilder . build ( ) ) ; augmentWhereClass ( whereClassBuilder , signature , clusteringCols , classesSignature , lastSignature ) ; return whereClassBuilder . build ( ) ; }
Generate extra method to extends the AbstractDeleteEnd class