@Override protected ClassSourceFileComposerFactory createComposerFactory() { String parameters = ""; if (source instanceof JGenericType) { JGenericType gtype = (JGenericType) source; StringBuilder builder = new StringBuilder(); builder.append("<"); boolean first = true; for (JTypeParameter arg : gtype.getTypeParameters()) { if (!first) builder.append(","); builder.append(arg.getName()); builder.append(" extends "); builder.append(arg.getFirstBound().getParameterizedQualifiedSourceName()); first = false; } builder.append(">"); parameters = builder.toString(); } ClassSourceFileComposerFactory composerFactory = new ClassSourceFileComposerFactory(packageName, shortName + parameters); composerFactory.addImplementedInterface(source.getParameterizedQualifiedSourceName()); composerFactory.addImplementedInterface(RestServiceProxy.class.getName()); return composerFactory; }