class ActorsProcessor extends AbstractProcessor {

    @VisibleForTesting
    /* package */ void generateFromModel(@NotNull ActorParsedModel model, @NotNull ActorGeneratedModel generated) {
        if (model.collectInterfaces) {
            for (ActorInterfaceDescription _interface : model.interfaces) {
                generated.interfaces.add(mModelFactory.createInterfaceGenerator(_interface));
            }

            for (ActorInterfaceGenerator _interface : generated.interfaces) {
                generated.files.add(_interface.generate(new NamesProviderImpl()));
            }
        }

        if (!model.collectInterfaces && generated.builder == null) {
            assert model.packages.size() == 1;
            generated.builder = mModelFactory.createBuilderGenerator(model.packages.get(0));
            generated.files.add(generated.builder.generate(generated.interfaces));
        }
    }

    @SuppressWarnings("unused") public  ActorsProcessor();
    @VisibleForTesting  ActorsProcessor(@NotNull ModelFactory modelFactory);

}