1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.databind.model.metaschema;
7   
8   import dev.metaschema.core.model.IModule;
9   import dev.metaschema.databind.IBindingContext;
10  import edu.umd.cs.findbugs.annotations.NonNull;
11  
12  /**
13   * Performs post-processing on a loaded module.
14   *
15   * @since 2.0.0
16   */
17  @FunctionalInterface
18  /**
19   * Post-processor interface for module loading operations.
20   * <p>
21   * Implementations can perform additional processing on modules after they have
22   * been loaded, such as applying external constraints.
23   */
24  public interface ModuleLoadingPostProcessor {
25    /**
26     * Post-processes the provided Metaschema module.
27     *
28     * @param module
29     *          the Module module to generate classes for
30     * @param bindingContext
31     *          the Metaschema binding context used to load bound resources
32     * @since 2.0.0
33     */
34    void postProcessModule(
35        @NonNull IModule module,
36        @NonNull IBindingContext bindingContext);
37  }