001package gov.nist.secauto.oscal.lib.model;
002
003import gov.nist.secauto.metaschema.binding.model.annotations.BoundField;
004import gov.nist.secauto.metaschema.binding.model.annotations.BoundFieldValue;
005import gov.nist.secauto.metaschema.binding.model.annotations.BoundFlag;
006import gov.nist.secauto.metaschema.binding.model.annotations.MetaschemaAssembly;
007import gov.nist.secauto.metaschema.model.common.datatype.adapter.UuidAdapter;
008import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultiline;
009import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultilineAdapter;
010import java.lang.Override;
011import java.lang.String;
012import java.util.UUID;
013import org.apache.commons.lang3.builder.MultilineRecursiveToStringStyle;
014import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
015
016/**
017 * The collection of components comprising this capability.
018 */
019@MetaschemaAssembly(
020    formalName = "Incorporates Component",
021    description = "The collection of components comprising this capability.",
022    name = "incorporates-component",
023    metaschema = OscalComponentDefinitionMetaschema.class
024)
025public class IncorporatesComponent {
026  @BoundFlag(
027      formalName = "Component Reference",
028      description = "A [machine-oriented](https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented) identifier reference to a `component`.",
029      useName = "component-uuid",
030      required = true,
031      typeAdapter = UuidAdapter.class
032  )
033  private UUID _componentUuid;
034
035  /**
036   * "A description of the component, including information about its function."
037   */
038  @BoundField(
039      formalName = "Component Description",
040      description = "A description of the component, including information about its function.",
041      useName = "description",
042      minOccurs = 1
043  )
044  @BoundFieldValue(
045      typeAdapter = MarkupMultilineAdapter.class
046  )
047  private MarkupMultiline _description;
048
049  public IncorporatesComponent() {
050  }
051
052  public UUID getComponentUuid() {
053    return _componentUuid;
054  }
055
056  public void setComponentUuid(UUID value) {
057    _componentUuid = value;
058  }
059
060  public MarkupMultiline getDescription() {
061    return _description;
062  }
063
064  public void setDescription(MarkupMultiline value) {
065    _description = value;
066  }
067
068  @Override
069  public String toString() {
070    return new ReflectionToStringBuilder(this, MultilineRecursiveToStringStyle.MULTI_LINE_STYLE).toString();
071  }
072}