001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.databind.codegen.config;
007
008import edu.umd.cs.findbugs.annotations.Nullable;
009
010/**
011 * Provides binding configuration for a specific property (field or assembly
012 * instance) within a definition.
013 *
014 * <p>
015 * Property bindings allow fine-grained control over code generation for
016 * individual model instances, such as specifying custom collection
017 * implementation classes.
018 */
019@SuppressWarnings("PMD.ImplicitFunctionalInterface")
020public interface IPropertyBindingConfiguration {
021
022  /**
023   * Get the fully qualified class name to use for collection initialization.
024   *
025   * <p>
026   * When specified, this class will be used instead of the default
027   * {@link java.util.LinkedList} or {@link java.util.LinkedHashMap} for
028   * collection properties.
029   *
030   * @return the fully qualified class name, or {@code null} if the default
031   *         collection class should be used
032   */
033  @Nullable
034  String getCollectionClassName();
035}