Class AssessmentPart

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

@MetaschemaAssembly(formalName="Assessment Part", description="A partition of an assessment plan or results or a child of another part.", name="assessment-part", moduleClass=OscalAssessmentCommonModule.class, remarks="A `part` provides for logical partitioning of prose, and can be thought of as a grouping structure (e.g., section). A `part` can have child parts allowing for arbitrary nesting of prose content (e.g., statement hierarchy). A `part` can contain `prop` objects that allow for enriching prose text with structured name/value information.\n\nA `part` can be assigned an optional `id`, which allows for internal and external references to the textual concept contained within a `part`. A `id` provides a means for an OSCAL profile, or a higher layer OSCAL model to reference a specific part within a `catalog`. For example, an `id` can be used to reference or to make modifications to a control statement in a profile.\n\nUse of `part` and `prop` provides for a wide degree of extensibility within the OSCAL catalog model. The optional `ns` provides a means to qualify a part\'s `name`, allowing for organization-specific vocabularies to be defined with clear semantics. Any organization that extends OSCAL in this way should consistently assign a `ns` value that represents the organization, making a given namespace qualified `name` unique to that organization. This allows the combination of `ns` and `name` to always be unique and unambiguous, even when mixed with extensions from other organizations. Each organization is responsible for governance of their own extensions, and is strongly encouraged to publish their extensions as standards to their user community. If no `ns` is provided, the name is expected to be in the \"OSCAL\" namespace.\n\nTo ensure a `ns` is unique to an organization and naming conflicts are avoided, a URI containing a DNS or other globally defined organization name should be used. For example, if FedRAMP and DoD both extend OSCAL, FedRAMP will use the `ns` `http://fedramp.gov/ns/oscal`, while DoD might use the `ns` `https://defense.gov` for any organization specific `name`.\n\nTools that process OSCAL content are not required to interpret unrecognized OSCAL extensions; however, OSCAL compliant tools should not modify or remove unrecognized extensions, unless there is a compelling reason to do so, such as data sensitivity.", valueConstraints=@AllowedValues(id="oscal-assesment-part-objective-name",level=ERROR,target=".[@name=\'objective\']/prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\')]/@name",values=@AllowedValue(value="method",description="The assessment method to use. This typically appears on parts with the name \"objective\".")) @AllowedValues(id="oscal-assesment-part-objective-method-value",level=ERROR,target=".[@name=\'objective\']/prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\') and @name=\'method\']/@value",values={@AllowedValue(value="INTERVIEW",description="The process of holding discussions with individuals or groups of individuals within an organization to once again, facilitate assessor understanding, achieve clarification, or obtain evidence."),@AllowedValue(value="EXAMINE",description="The process of reviewing, inspecting, observing, studying, or analyzing one or more assessment objects (i.e., specifications, mechanisms, or activities)."),@AllowedValue(value="TEST",description="The process of exercising one or more assessment objects (i.e., activities or mechanisms) under specified conditions to compare actual with expected behavior.")}), modelConstraints=@AssemblyConstraints(cardinality=@HasCardinality(id="oscal-assesment-part-objective-cardinality",level=ERROR,target=".[@name=\'objective\']/prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\') and @name=\'method\']",minOccurs=1))) public class AssessmentPart extends Object implements dev.metaschema.core.model.IBoundObject
A partition of an assessment plan or results or a child of another part.
  • Constructor Details

    • AssessmentPart

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

      public AssessmentPart(dev.metaschema.core.model.IMetaschemaData data)
      Constructs a new dev.metaschema.oscal.lib.model.AssessmentPart 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
    • getUuid

      @Nullable public UUID getUuid()
      Get the "Part Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this part elsewhere in this or other OSCAL instances. The locally defined UUID of the part can be used to reference the data item locally or globally (e.g., in an ported 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, or null if not set
    • setUuid

      public void setUuid(@Nullable UUID value)
      Set the "Part Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this part elsewhere in this or other OSCAL instances. The locally defined UUID of the part can be used to reference the data item locally or globally (e.g., in an ported 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, or null to clear
    • getName

      @NonNull public String getName()
      Get the "Part Name".

      A textual label that uniquely identifies the part's semantic type.

      Returns:
      the name value
    • setName

      public void setName(@NonNull String value)
      Set the "Part Name".

      A textual label that uniquely identifies the part's semantic type.

      Parameters:
      value - the name value to set
    • getNs

      @Nullable public URI getNs()
      Get the "Part Namespace".

      A namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.

      Returns:
      the ns value, or null if not set
    • setNs

      public void setNs(@Nullable URI value)
      Set the "Part Namespace".

      A namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.

      Parameters:
      value - the ns value to set, or null to clear
    • getClazz

      @Nullable public String getClazz()
      Get the "Part Class".

      A textual label that provides a sub-type or characterization of the part's name. This can be used to further distinguish or discriminate between the semantics of multiple parts of the same control with the same name and ns.

      Returns:
      the class value, or null if not set
    • setClazz

      public void setClazz(@Nullable String value)
      Set the "Part Class".

      A textual label that provides a sub-type or characterization of the part's name. This can be used to further distinguish or discriminate between the semantics of multiple parts of the same control with the same name and ns.

      Parameters:
      value - the class value to set, or null to clear
    • getTitle

      @Nullable public dev.metaschema.core.datatype.markup.MarkupLine getTitle()
      Get the "Part Title".

      A name given to the part, which may be used by a tool for display and navigation.

      Returns:
      the title value, or null if not set
    • setTitle

      public void setTitle(@Nullable dev.metaschema.core.datatype.markup.MarkupLine value)
      Set the "Part Title".

      A name given to the part, which may be used by a tool for display and navigation.

      Parameters:
      value - the title value to set, or null to clear
    • 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
    • getProse

      @Nullable public dev.metaschema.core.datatype.markup.MarkupMultiline getProse()
      Get the "Part Text".

      Permits multiple paragraphs, lists, tables etc.

      Returns:
      the prose value, or null if not set
    • setProse

      public void setProse(@Nullable dev.metaschema.core.datatype.markup.MarkupMultiline value)
      Set the "Part Text".

      Permits multiple paragraphs, lists, tables etc.

      Parameters:
      value - the prose value to set, or null to clear
    • getParts

      @NonNull public List<AssessmentPart> getParts()
      Get the "Assessment Part".

      A partition of an assessment plan or results or a child of another part.

      Returns:
      the part value
    • setParts

      public void setParts(@NonNull List<AssessmentPart> value)
      Set the "Assessment Part".

      A partition of an assessment plan or results or a child of another part.

      Parameters:
      value - the part value to set
    • addPart

      public boolean addPart(AssessmentPart item)
      Add a new AssessmentPart item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removePart

      public boolean removePart(AssessmentPart item)
      Remove the first matching AssessmentPart 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
    • toString

      public String toString()
      Overrides:
      toString in class Object