class TagElementView implements Transform<TagElement, String>,
        HasNameView<TagElement>, 
        HasElementsView<TagElement>, 
        HasAttributesView<TagElement> {

    @Override
    public Optional<String> transform(Generator gen, TagElement model) {<FILL_FUNCTION_BODY>}
}

        return Optional.of("<" +
            transformName(model) +
            transformAttributes(gen, model) +
            (model.elements().isEmpty() ? '/' : "") +
            '>' +
            transformElements(gen, model) +
            (model.elements().isEmpty() ? "" : new StringBuilder()
                .append("</")
                .append(transformName(model))
                .append('>'))
        );
    
<no_super_class>