3

I would like to generate a new class as follows:

public class QueryBuilder_QueryField
extends AbstractQueryBuilder<QueryBuilder_QueryField>

and i tried this but it doesn't narrow the extends...

JCodeModel model = new JCodeModel();
String fqcn = packageName + "." + className;
JDefinedClass builderClass = model._class(fqcn);
builderClass._extends(AbstractQueryBuilder.class).narrow(builderClass);

but instead ends up like

public class QueryBuilder_QueryField
extends AbstractQueryBuilder

any ideas?

Adam Morgan
  • 425
  • 1
  • 3
  • 17

1 Answers1

3

I believe you need to narrow before you pass the class into _extends():

JCodeModel model = new JCodeModel();
String fqcn = packageName + "." + className;
JDefinedClass builderClass = model._class(fqcn);
builderClass._extends(model.ref(AbstractQueryBuilder.class).narrow(builderClass));

Generates:

public class QueryBuilder_QueryField
extends AbstractQueryBuilder<QueryBuilder_QueryField>
John Ericksen
  • 10,995
  • 4
  • 45
  • 75
  • That worked! thanks John. could u 1+ my question. i'm new here and need some reputation apparently :) i can't even 1+ your answer in recognition! – Adam Morgan Sep 17 '15 at 14:01