IncorporatesComponent.java

package gov.nist.secauto.oscal.lib.model;

import gov.nist.secauto.metaschema.binding.model.annotations.BoundField;
import gov.nist.secauto.metaschema.binding.model.annotations.BoundFieldValue;
import gov.nist.secauto.metaschema.binding.model.annotations.BoundFlag;
import gov.nist.secauto.metaschema.binding.model.annotations.MetaschemaAssembly;
import gov.nist.secauto.metaschema.model.common.datatype.adapter.UuidAdapter;
import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultiline;
import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultilineAdapter;
import java.lang.Override;
import java.lang.String;
import java.util.UUID;
import org.apache.commons.lang3.builder.MultilineRecursiveToStringStyle;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

/**
 * The collection of components comprising this capability.
 */
@MetaschemaAssembly(
    formalName = "Incorporates Component",
    description = "The collection of components comprising this capability.",
    name = "incorporates-component",
    metaschema = OscalComponentDefinitionMetaschema.class
)
public class IncorporatesComponent {
  @BoundFlag(
      formalName = "Component Reference",
      description = "A [machine-oriented](https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented) identifier reference to a `component`.",
      useName = "component-uuid",
      required = true,
      typeAdapter = UuidAdapter.class
  )
  private UUID _componentUuid;

  /**
   * "A description of the component, including information about its function."
   */
  @BoundField(
      formalName = "Component Description",
      description = "A description of the component, including information about its function.",
      useName = "description",
      minOccurs = 1
  )
  @BoundFieldValue(
      typeAdapter = MarkupMultilineAdapter.class
  )
  private MarkupMultiline _description;

  public IncorporatesComponent() {
  }

  public UUID getComponentUuid() {
    return _componentUuid;
  }

  public void setComponentUuid(UUID value) {
    _componentUuid = value;
  }

  public MarkupMultiline getDescription() {
    return _description;
  }

  public void setDescription(MarkupMultiline value) {
    _description = value;
  }

  @Override
  public String toString() {
    return new ReflectionToStringBuilder(this, MultilineRecursiveToStringStyle.MULTI_LINE_STYLE).toString();
  }
}