001// Generated from: ../../../../../../../../oscal/src/metaschema/oscal_mapping_metaschema.xml
002// Do not edit - changes will be lost when regenerated.
003package dev.metaschema.oscal.lib.model;
004
005import dev.metaschema.core.datatype.markup.MarkupLine;
006import dev.metaschema.core.datatype.markup.MarkupMultiline;
007import dev.metaschema.databind.IBindingContext;
008import dev.metaschema.databind.model.AbstractBoundModule;
009import dev.metaschema.databind.model.IBoundModule;
010import dev.metaschema.databind.model.annotations.MetaschemaModule;
011import java.net.URI;
012import java.util.List;
013
014/**
015 * OSCAL Control Mapping Model
016 * <p>The OSCAL Control mapping format can be used to describe how a collection of security controls and related control enhancements relate to another collection of controls. The root of the Control Catalog format is <code>mapping-collection</code>.</p>
017 */
018@MetaschemaModule(
019    assemblies = MappingCollection.class,
020    imports = {
021        OscalMetadataModule.class,
022        OscalMappingCommonModule.class
023    },
024    remarks = "The OSCAL Control mapping format can be used to describe how a collection of security controls and related control enhancements relate to another collection of controls. The root of the Control Catalog format is `mapping-collection`."
025)
026public final class OscalMappingModule extends AbstractBoundModule {
027  private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Control Mapping Model");
028
029  private static final String SHORT_NAME = "oscal-mapping";
030
031  private static final String VERSION = "1.2.0";
032
033  private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0");
034
035  private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal");
036
037  private static final MarkupMultiline REMARKS = MarkupMultiline.fromMarkdown("The OSCAL Control mapping format can be used to describe how a collection of security controls and related control enhancements relate to another collection of controls. The root of the Control Catalog format is `mapping-collection`.");
038
039  /**
040   * Construct a new module instance.
041   *
042   * @param importedModules
043   *           modules imported by this module
044   * @param bindingContext
045   *           the binding context to associate with this module
046   */
047  public OscalMappingModule(List<? extends IBoundModule> importedModules,
048      IBindingContext bindingContext) {
049    super(importedModules, bindingContext);
050  }
051
052  @Override
053  public MarkupLine getName() {
054    return NAME;
055  }
056
057  @Override
058  public String getShortName() {
059    return SHORT_NAME;
060  }
061
062  @Override
063  public String getVersion() {
064    return VERSION;
065  }
066
067  @Override
068  public URI getXmlNamespace() {
069    return XML_NAMESPACE;
070  }
071
072  @Override
073  public URI getJsonBaseUri() {
074    return JSON_BASE_URI;
075  }
076
077  @Override
078  public MarkupMultiline getRemarks() {
079    return REMARKS;
080  }
081}