1 package gov.nist.secauto.oscal.lib.model;
2
3 import gov.nist.secauto.metaschema.binding.model.annotations.BoundField;
4 import gov.nist.secauto.metaschema.binding.model.annotations.BoundFieldValue;
5 import gov.nist.secauto.metaschema.binding.model.annotations.BoundFlag;
6 import gov.nist.secauto.metaschema.binding.model.annotations.MetaschemaAssembly;
7 import gov.nist.secauto.metaschema.model.common.datatype.adapter.UuidAdapter;
8 import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultiline;
9 import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultilineAdapter;
10 import java.lang.Override;
11 import java.lang.String;
12 import java.util.UUID;
13 import org.apache.commons.lang3.builder.MultilineRecursiveToStringStyle;
14 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
15
16
17
18
19 @MetaschemaAssembly(
20 formalName = "Incorporates Component",
21 description = "The collection of components comprising this capability.",
22 name = "incorporates-component",
23 metaschema = OscalComponentDefinitionMetaschema.class
24 )
25 public class IncorporatesComponent {
26 @BoundFlag(
27 formalName = "Component Reference",
28 description = "A [machine-oriented](https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented) identifier reference to a `component`.",
29 useName = "component-uuid",
30 required = true,
31 typeAdapter = UuidAdapter.class
32 )
33 private UUID _componentUuid;
34
35
36
37
38 @BoundField(
39 formalName = "Component Description",
40 description = "A description of the component, including information about its function.",
41 useName = "description",
42 minOccurs = 1
43 )
44 @BoundFieldValue(
45 typeAdapter = MarkupMultilineAdapter.class
46 )
47 private MarkupMultiline _description;
48
49 public IncorporatesComponent() {
50 }
51
52 public UUID getComponentUuid() {
53 return _componentUuid;
54 }
55
56 public void setComponentUuid(UUID value) {
57 _componentUuid = value;
58 }
59
60 public MarkupMultiline getDescription() {
61 return _description;
62 }
63
64 public void setDescription(MarkupMultiline value) {
65 _description = value;
66 }
67
68 @Override
69 public String toString() {
70 return new ReflectionToStringBuilder(this, MultilineRecursiveToStringStyle.MULTI_LINE_STYLE).toString();
71 }
72 }