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}