001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package gov.nist.secauto.metaschema.databind.codegen.config;
007
008import java.util.List;
009
010import edu.umd.cs.findbugs.annotations.NonNull;
011import edu.umd.cs.findbugs.annotations.Nullable;
012
013public interface IDefinitionBindingConfiguration {
014  /**
015   * Get the class name to use for the generated class associated with this
016   * binding.
017   *
018   * @return a class name
019   */
020  @Nullable
021  String getClassName();
022
023  /**
024   * Get the class that the associated generated class will extend.
025   *
026   * @return a full type, including the package
027   */
028  @Nullable
029  String getQualifiedBaseClassName();
030
031  /**
032   * A collection of interfaces that the associated generated class will
033   * implement.
034   *
035   * @return a list of fully qualified type names for interfaces
036   */
037  @NonNull
038  List<String> getInterfacesToImplement();
039}