Class ByComponent

java.lang.Object
dev.metaschema.oscal.lib.model.ByComponent
All Implemented Interfaces:
dev.metaschema.core.model.IBoundObject

@MetaschemaAssembly(formalName="Component Control Implementation", description="Defines how the referenced component implements a set of controls.", name="by-component", moduleClass=OscalSspModule.class, remarks="Use of `set-parameter` in this context, sets the parameter for the control referenced in the containing `implemented-requirement` applied to the referenced component. If the `by-component` is used as a child of a `statement`, then the parameter value also applies only in the context of the referenced statement. If the same parameter is also set in the `control-implementation` or a specific `implemented-requirement`, then this `by-component/set-parameter` value will override the other value(s) in the context of the referenced component, control, and statement (if parent).", valueConstraints=@ValueConstraints(allowedValues={@AllowedValues(id="oscal-by-component-link-rel-values",level=ERROR,target="link/@rel",allowOthers=true,values={@AllowedValue(value="imported-from",description="The hyperlink identifies a URI pointing to the `component` in a `component-definition` that originally described the `component` this component was based on."),@AllowedValue(value="provided-by",description="A reference to the UUID of a control or statement `by-component` object that is used as evidence of implementation.")}),@AllowedValues(id="oscal-by-component-responsible-role-id-values",level=ERROR,target=".//responsible-role/@role-id",allowOthers=true,values={@AllowedValue(value="asset-owner",description="Accountable for ensuring the asset is managed in accordance with organizational policies and procedures."),@AllowedValue(value="asset-administrator",description="Responsible for administering a set of assets."),@AllowedValue(value="security-operations",description="Members of the security operations center (SOC)."),@AllowedValue(value="network-operations",description="Members of the network operations center (NOC)."),@AllowedValue(value="incident-response",description="Responsible for responding to an event that could lead to loss of, or disruption to, an organization\'s operations, services or functions."),@AllowedValue(value="help-desk",description="Responsible for providing information and support to users."),@AllowedValue(value="configuration-management",description="Responsible for the configuration management processes governing changes to the asset."),@AllowedValue(value="maintainer",description="Responsible for the creation and maintenance of a component."),@AllowedValue(value="provider",description="Organization responsible for providing the component, if this is different from the \"maintainer\" (e.g., a reseller).")})},indexHasKey=@IndexHasKey(id="oscal-by-component-uuid-index",level=ERROR,target="link[@rel=\'provided-by\']",indexName="by-component-uuid",keyFields=@KeyField(target="@href",pattern="#(.*)"))), modelConstraints=@AssemblyConstraints(unique=@IsUnique(id="oscal-unique-ssp-by-component-set-parameter",level=ERROR,target="set-parameter",keyFields=@KeyField(target="@param-id"),remarks="Since multiple `set-parameter` entries can be provided, each parameter must be set only once."))) public class ByComponent extends Object implements dev.metaschema.core.model.IBoundObject
Defines how the referenced component implements a set of controls.
  • Constructor Details

    • ByComponent

      public ByComponent()
      Constructs a new dev.metaschema.oscal.lib.model.ByComponent instance with no metadata.
    • ByComponent

      public ByComponent(dev.metaschema.core.model.IMetaschemaData data)
      Constructs a new dev.metaschema.oscal.lib.model.ByComponent instance with the specified metadata.
      Parameters:
      data - the metaschema data, or null if none
  • Method Details

    • getMetaschemaData

      public dev.metaschema.core.model.IMetaschemaData getMetaschemaData()
      Specified by:
      getMetaschemaData in interface dev.metaschema.core.model.IBoundObject
    • getComponentUuid

      @NonNull public UUID getComponentUuid()
      Get the "Component Universally Unique Identifier Reference".

      A machine-oriented identifier reference to the component that is implementing a given control.

      Returns:
      the component-uuid value
    • setComponentUuid

      public void setComponentUuid(@NonNull UUID value)
      Set the "Component Universally Unique Identifier Reference".

      A machine-oriented identifier reference to the component that is implementing a given control.

      Parameters:
      value - the component-uuid value to set
    • getUuid

      @NonNull public UUID getUuid()
      Get the "By-Component Universally Unique Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this by-component entry elsewhere in this or other OSCAL instances. The locally defined UUID of the by-component entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.

      Returns:
      the uuid value
    • setUuid

      public void setUuid(@NonNull UUID value)
      Set the "By-Component Universally Unique Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this by-component entry elsewhere in this or other OSCAL instances. The locally defined UUID of the by-component entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.

      Parameters:
      value - the uuid value to set
    • getDescription

      @NonNull public dev.metaschema.core.datatype.markup.MarkupMultiline getDescription()
      Get the "Control Implementation Description".

      An implementation statement that describes how a control or a control statement is implemented within the referenced system component.

      Returns:
      the description value
    • setDescription

      public void setDescription(@NonNull dev.metaschema.core.datatype.markup.MarkupMultiline value)
      Set the "Control Implementation Description".

      An implementation statement that describes how a control or a control statement is implemented within the referenced system component.

      Parameters:
      value - the description value to set
    • getProps

      @NonNull public List<Property> getProps()
      Get the "Property".

      An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair.

      Returns:
      the prop value
    • setProps

      public void setProps(@NonNull List<Property> value)
      Set the "Property".

      An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair.

      Parameters:
      value - the prop value to set
    • addProp

      public boolean addProp(Property item)
      Add a new Property item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeProp

      public boolean removeProp(Property item)
      Remove the first matching Property item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getLinks

      @NonNull public List<Link> getLinks()
      Get the "Link".

      A reference to a local or remote resource, that has a specific relation to the containing object.

      Returns:
      the link value
    • setLinks

      public void setLinks(@NonNull List<Link> value)
      Set the "Link".

      A reference to a local or remote resource, that has a specific relation to the containing object.

      Parameters:
      value - the link value to set
    • addLink

      public boolean addLink(Link item)
      Add a new Link item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeLink

      public boolean removeLink(Link item)
      Remove the first matching Link item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getSetParameters

      @NonNull public List<SetParameter> getSetParameters()
      Get the "Set Parameter Value".

      Identifies the parameter that will be set by the enclosed value.

      Returns:
      the set-parameter value
    • setSetParameters

      public void setSetParameters(@NonNull List<SetParameter> value)
      Set the "Set Parameter Value".

      Identifies the parameter that will be set by the enclosed value.

      Parameters:
      value - the set-parameter value to set
    • addSetParameter

      public boolean addSetParameter(SetParameter item)
      Add a new SetParameter item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeSetParameter

      public boolean removeSetParameter(SetParameter item)
      Remove the first matching SetParameter item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getImplementationStatus

      Get the "Implementation Status".

      Indicates the degree to which the a given control is implemented.

      Returns:
      the implementation-status value, or null if not set
    • setImplementationStatus

      public void setImplementationStatus(@Nullable ImplementationStatus value)
      Set the "Implementation Status".

      Indicates the degree to which the a given control is implemented.

      Parameters:
      value - the implementation-status value to set, or null to clear
    • getExport

      @Nullable public ByComponent.Export getExport()
      Get the "Export".

      Identifies content intended for external consumption, such as with leveraged organizations.

      Returns:
      the export value, or null if not set
    • setExport

      public void setExport(@Nullable ByComponent.Export value)
      Set the "Export".

      Identifies content intended for external consumption, such as with leveraged organizations.

      Parameters:
      value - the export value to set, or null to clear
    • getInherited

      Get the "Inherited Control Implementation".

      Describes a control implementation inherited by a leveraging system.

      Returns:
      the inherited value
    • setInherited

      public void setInherited(@NonNull List<ByComponent.Inherited> value)
      Set the "Inherited Control Implementation".

      Describes a control implementation inherited by a leveraging system.

      Parameters:
      value - the inherited value to set
    • addInherited

      public boolean addInherited(ByComponent.Inherited item)
      Add a new ByComponent.Inherited item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeInherited

      public boolean removeInherited(ByComponent.Inherited item)
      Remove the first matching ByComponent.Inherited item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getSatisfied

      Get the "Satisfied Control Implementation Responsibility".

      Describes how this system satisfies a responsibility imposed by a leveraged system.

      Returns:
      the satisfied value
    • setSatisfied

      public void setSatisfied(@NonNull List<ByComponent.Satisfied> value)
      Set the "Satisfied Control Implementation Responsibility".

      Describes how this system satisfies a responsibility imposed by a leveraged system.

      Parameters:
      value - the satisfied value to set
    • addSatisfied

      public boolean addSatisfied(ByComponent.Satisfied item)
      Add a new ByComponent.Satisfied item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeSatisfied

      public boolean removeSatisfied(ByComponent.Satisfied item)
      Remove the first matching ByComponent.Satisfied item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getResponsibleRoles

      Get the "Responsible Role".

      A reference to a role with responsibility for performing a function relative to the containing object, optionally associated with a set of persons and/or organizations that perform that role.

      Returns:
      the responsible-role value
    • setResponsibleRoles

      public void setResponsibleRoles(@NonNull List<ResponsibleRole> value)
      Set the "Responsible Role".

      A reference to a role with responsibility for performing a function relative to the containing object, optionally associated with a set of persons and/or organizations that perform that role.

      Parameters:
      value - the responsible-role value to set
    • addResponsibleRole

      public boolean addResponsibleRole(ResponsibleRole item)
      Add a new ResponsibleRole item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeResponsibleRole

      public boolean removeResponsibleRole(ResponsibleRole item)
      Remove the first matching ResponsibleRole item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getRemarks

      @Nullable public dev.metaschema.core.datatype.markup.MarkupMultiline getRemarks()
      Get the "Remarks".

      Additional commentary about the containing object.

      Returns:
      the remarks value, or null if not set
    • setRemarks

      public void setRemarks(@Nullable dev.metaschema.core.datatype.markup.MarkupMultiline value)
      Set the "Remarks".

      Additional commentary about the containing object.

      Parameters:
      value - the remarks value to set, or null to clear
    • toString

      public String toString()
      Overrides:
      toString in class Object