001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005// Generated from: ../../../../../../metaschema/metaschema-bindings.yaml
006// Do not edit - changes will be lost when regenerated.
007
008package dev.metaschema.databind.config.binding;
009
010import java.net.URI;
011import java.util.List;
012
013import dev.metaschema.core.datatype.markup.MarkupLine;
014import dev.metaschema.core.datatype.markup.MarkupMultiline;
015import dev.metaschema.databind.IBindingContext;
016import dev.metaschema.databind.model.AbstractBoundModule;
017import dev.metaschema.databind.model.IBoundModule;
018import dev.metaschema.databind.model.annotations.MetaschemaModule;
019
020/**
021 * Metaschema Binding Configuration
022 * <p>
023 * This module defines the binding configuration format used to customize Java
024 * code generation from Metaschema modules. It allows specifying package names,
025 * class names, interface implementations, base classes, and collection types
026 * for generated binding classes.
027 * </p>
028 */
029@MetaschemaModule(
030    assemblies = MetaschemaBindings.class,
031    remarks = "This module defines the binding configuration format used to customize\n"
032        + "Java code generation from Metaschema modules. It allows specifying\n"
033        + "package names, class names, interface implementations, base classes,\n"
034        + "and collection types for generated binding classes.")
035public final class MetaschemaBindingsModule
036    extends AbstractBoundModule {
037  private static final MarkupLine NAME = MarkupLine.fromMarkdown("Metaschema Binding Configuration");
038
039  private static final String SHORT_NAME = "metaschema-bindings";
040
041  private static final String VERSION = "1.0.0";
042
043  private static final URI XML_NAMESPACE = URI.create("https://csrc.nist.gov/ns/metaschema-binding/1.0");
044
045  private static final URI JSON_BASE_URI = URI.create("https://csrc.nist.gov/ns/metaschema-binding/1.0");
046
047  private static final MarkupMultiline REMARKS
048      = MarkupMultiline.fromMarkdown("This module defines the binding configuration format used to customize\n"
049          + "Java code generation from Metaschema modules. It allows specifying\n"
050          + "package names, class names, interface implementations, base classes,\n"
051          + "and collection types for generated binding classes.");
052
053  /**
054   * Construct a new module instance.
055   *
056   * @param importedModules
057   *          modules imported by this module
058   * @param bindingContext
059   *          the binding context to associate with this module
060   */
061  public MetaschemaBindingsModule(List<? extends IBoundModule> importedModules,
062      IBindingContext bindingContext) {
063    super(importedModules, bindingContext);
064  }
065
066  @Override
067  public MarkupLine getName() {
068    return NAME;
069  }
070
071  @Override
072  public String getShortName() {
073    return SHORT_NAME;
074  }
075
076  @Override
077  public String getVersion() {
078    return VERSION;
079  }
080
081  @Override
082  public URI getXmlNamespace() {
083    return XML_NAMESPACE;
084  }
085
086  @Override
087  public URI getJsonBaseUri() {
088    return JSON_BASE_URI;
089  }
090
091  @Override
092  public MarkupMultiline getRemarks() {
093    return REMARKS;
094  }
095}