001package gov.nist.secauto.oscal.lib.model;
002
003import gov.nist.secauto.metaschema.core.datatype.adapter.UriReferenceAdapter;
004import gov.nist.secauto.metaschema.core.datatype.markup.MarkupMultiline;
005import gov.nist.secauto.metaschema.core.datatype.markup.MarkupMultilineAdapter;
006import gov.nist.secauto.metaschema.core.model.IBoundObject;
007import gov.nist.secauto.metaschema.core.model.IMetaschemaData;
008import gov.nist.secauto.metaschema.databind.model.annotations.BoundField;
009import gov.nist.secauto.metaschema.databind.model.annotations.BoundFlag;
010import gov.nist.secauto.metaschema.databind.model.annotations.MetaschemaAssembly;
011import java.lang.Override;
012import java.lang.String;
013import java.net.URI;
014import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
015import org.apache.commons.lang3.builder.ToStringStyle;
016
017/**
018 * Used by assessment-results to import information about the original plan for assessing the system.
019 */
020@MetaschemaAssembly(
021    formalName = "Import Assessment Plan",
022    description = "Used by assessment-results to import information about the original plan for assessing the system.",
023    name = "import-ap",
024    moduleClass = OscalArModule.class
025)
026public class ImportAp implements IBoundObject {
027  private final IMetaschemaData __metaschemaData;
028
029  /**
030   * "A resolvable URL reference to the assessment plan governing the assessment activities."
031   */
032  @BoundFlag(
033      formalName = "Assessment Plan Reference",
034      description = "A resolvable URL reference to the assessment plan governing the assessment activities.",
035      name = "href",
036      required = true,
037      typeAdapter = UriReferenceAdapter.class,
038      remarks = "This value may be one of:\n"
039              + "\n"
040              + "1. an [absolute URI](https://pages.nist.gov/OSCAL/concepts/uri-use/#absolute-uri) that points to a network resolvable resource,\n"
041              + "2. a [relative reference](https://pages.nist.gov/OSCAL/concepts/uri-use/#relative-reference) pointing to a network resolvable resource whose base URI is the URI of the containing document, or\n"
042              + "3. a bare URI fragment (i.e., \\`#uuid\\`) pointing to a `back-matter` resource in this or an imported document (see [linking to another OSCAL object](https://pages.nist.gov/OSCAL/concepts/uri-use/#linking-to-another-oscal-object))."
043  )
044  private URI _href;
045
046  @BoundField(
047      formalName = "Remarks",
048      description = "Additional commentary about the containing object.",
049      useName = "remarks",
050      typeAdapter = MarkupMultilineAdapter.class
051  )
052  private MarkupMultiline _remarks;
053
054  public ImportAp() {
055    this(null);
056  }
057
058  public ImportAp(IMetaschemaData data) {
059    this.__metaschemaData = data;
060  }
061
062  @Override
063  public IMetaschemaData getMetaschemaData() {
064    return __metaschemaData;
065  }
066
067  public URI getHref() {
068    return _href;
069  }
070
071  public void setHref(URI value) {
072    _href = value;
073  }
074
075  public MarkupMultiline getRemarks() {
076    return _remarks;
077  }
078
079  public void setRemarks(MarkupMultiline value) {
080    _remarks = value;
081  }
082
083  @Override
084  public String toString() {
085    return new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString();
086  }
087}