default String renderInterfaces(Generator gen, M model) {
        if ((model instanceof HasSupertype)
        && ((HasSupertype<?>) model).getSupertype().isPresent()
        && !model.getInterfaces().isEmpty()) {
            final int spaces = extendsOrImplementsInterfaces().length() - 1;
            return gen.onEach(model.getInterfaces()).collect(
                joinIfNotEmpty(
                    "," + Formatting.nl() + Formatting.repeat(" ", spaces),
                    Formatting.nl() + extendsOrImplementsInterfaces(),
                    " "
                )
            );
        } else {
            return gen.onEach(model.getInterfaces()).collect(
                joinIfNotEmpty(
                    ", ",
                    extendsOrImplementsInterfaces(),
                    " "
                )
            );
        }
    }
Render the supertype-part of the model. The 
{@link #extendsOrImplementsInterfaces()}-method should be implemented to
answer which wording to use; 'implements' or 'extends'.

@param gen    the generator
@param model  the model
@return       the generated code
common-parent/codegen/src/main/java/com/speedment/common/codegen/internal/java/view/trait/HasImplementsView.java