001package gov.nist.secauto.oscal.lib.model; 002 003import gov.nist.secauto.metaschema.core.datatype.markup.MarkupLine; 004import gov.nist.secauto.metaschema.core.datatype.markup.MarkupMultiline; 005import gov.nist.secauto.metaschema.databind.IBindingContext; 006import gov.nist.secauto.metaschema.databind.model.AbstractBoundModule; 007import gov.nist.secauto.metaschema.databind.model.IBoundModule; 008import gov.nist.secauto.metaschema.databind.model.annotations.MetaschemaModule; 009import java.lang.Override; 010import java.lang.String; 011import java.net.URI; 012import java.util.List; 013 014@MetaschemaModule( 015 assemblies = MappingCollection.class, 016 imports = { 017 OscalMetadataModule.class, 018 OscalMappingCommonModule.class 019 }, 020 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`." 021) 022public final class OscalMappingModule extends AbstractBoundModule { 023 private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Control Mapping Model"); 024 025 private static final String SHORT_NAME = "oscal-mapping"; 026 027 private static final String VERSION = "1.2.0"; 028 029 private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0"); 030 031 private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal"); 032 033 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`."); 034 035 public OscalMappingModule(List<? extends IBoundModule> importedModules, 036 IBindingContext bindingContext) { 037 super(importedModules, bindingContext); 038 } 039 040 @Override 041 public MarkupLine getName() { 042 return NAME; 043 } 044 045 @Override 046 public String getShortName() { 047 return SHORT_NAME; 048 } 049 050 @Override 051 public String getVersion() { 052 return VERSION; 053 } 054 055 @Override 056 public URI getXmlNamespace() { 057 return XML_NAMESPACE; 058 } 059 060 @Override 061 public URI getJsonBaseUri() { 062 return JSON_BASE_URI; 063 } 064 065 @Override 066 public MarkupMultiline getRemarks() { 067 return REMARKS; 068 } 069}