1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.databind.codegen.config;
7   
8   import edu.umd.cs.findbugs.annotations.Nullable;
9   
10  /**
11   * Provides binding configuration for a specific property (field or assembly
12   * instance) within a definition.
13   *
14   * <p>
15   * Property bindings allow fine-grained control over code generation for
16   * individual model instances, such as specifying custom collection
17   * implementation classes.
18   */
19  @SuppressWarnings("PMD.ImplicitFunctionalInterface")
20  public interface IPropertyBindingConfiguration {
21  
22    /**
23     * Get the fully qualified class name to use for collection initialization.
24     *
25     * <p>
26     * When specified, this class will be used instead of the default
27     * {@link java.util.LinkedList} or {@link java.util.LinkedHashMap} for
28     * collection properties.
29     *
30     * @return the fully qualified class name, or {@code null} if the default
31     *         collection class should be used
32     */
33    @Nullable
34    String getCollectionClassName();
35  }