class SimpleTranslator
    <DOC extends Document & HasName & HasMainInterface,
        T extends ClassOrInterface<T>>
implements JavaClassTranslator<DOC, T> {

    private final Injector injector;
    private final GeneratorFunction<DOC, T> creator;
    private final DOC document;
    private final boolean generated;

    public SimpleTranslator(
            Injector injector,
            DOC document,
            GeneratorFunction<DOC, T> creator,
            boolean generated) {

        this.creator   = requireNonNull(creator);
        this.document  = requireNonNull(document);
        this.injector  = requireNonNull(injector);
        this.generated = generated;
    }

    @Override
    public File get() {<FILL_FUNCTION_BODY>}

    @Override
    public TranslatorSupport<DOC> getSupport() {
        return new TranslatorSupport<>(injector, document);
    }

    @Override
    public DOC getDocument() {
        return document;
    }

    @Override
    public boolean isInGeneratedPackage() {
        return generated;
    }

    @Override
    public Generator getCodeGenerator() {
        return Generator.forJava();
    }

    @Override
    public void onMake(BiConsumer<File, Builder<T>> action) {
        // This implementation doesn't use listeners.
    }

    @Override
    public Stream<BiConsumer<File, Builder<T>>> listeners() {
        return Stream.empty();
    }
}

        final T generatedClass = creator.generate(document);
        final File file = File.of(getSupport().baseDirectoryName() + "/"
            + (isInGeneratedPackage() ? "generated/" : "")
            + generatedClass.getName() + ".java"
        );

        file.add(generatedClass);
        file.call(new AutoImports(getCodeGenerator().getDependencyMgr()));
        file.call(new AlignTabs<>());
        return file;
    
<no_super_class>