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 }