Package gov.nist.secauto.oscal.lib.model
Class ComponentDefinition
java.lang.Object
gov.nist.secauto.oscal.lib.model.ComponentDefinition
- All Implemented Interfaces:
gov.nist.secauto.metaschema.core.model.IBoundObject
@MetaschemaAssembly(formalName="Component Definition",
description="A collection of component descriptions, which may optionally be grouped by capability.",
name="component-definition",
moduleClass=OscalComponentDefinitionModule.class,
rootName="component-definition",
valueConstraints=@ValueConstraints(lets=@Let(name="all-imports",target="import-component-definition ! recurse-depth(\'doc(resolve-uri(Q{http://csrc.nist.gov/ns/oscal/1.0}resolve-reference(@href)))/component-definition\')")),
modelConstraints=@AssemblyConstraints(index={@Index(level=ERROR,target="component",name="index-system-component-uuid",keyFields=@KeyField(target="@uuid"),remarks="Since multiple `component` entries can be provided, each component must have a unique `uuid`."),@Index(id="oscal-component-definition-index-metadata-scoped-role-id",formalName="In-Scope Role Identifiers",description="An index of role identifiers that are in-scope for the component-definition model. Roles are collected from imported component-definition. For a given role @id, a locally declared role takes precedence over a role that is imported, the role that was last imported.",level=ERROR,target="map:merge($all-imports/metadata/role ! map:entry(@id,.))?*",name="index-imports-metadata-role-id",keyFields=@KeyField(target="@id")),@Index(id="oscal-component-definition-index-metadata-scoped-location-uuid",level=ERROR,target="map:merge($all-imports/metadata/location ! map:entry(@uuid,.))?*",name="index-imports-metadata-location-uuid",keyFields=@KeyField(target="@uuid")),@Index(id="oscal-component-definition-index-metadata-scoped-party-uuid",level=ERROR,target="map:merge($all-imports/metadata/party ! map:entry(@uuid,.))?*",name="index-imports-metadata-party-uuid",keyFields=@KeyField(target="@uuid")),@Index(id="oscal-component-definition-index-metadata-scoped-party-organization-uuid",level=ERROR,target="map:merge($all-imports/metadata/party[@type=\'organization\'] ! map:entry(@uuid,.))?*",name="index-imports-metadata-party-organization-uuid",keyFields=@KeyField(target="@uuid")),@Index(id="oscal-component-definition-index-metadata-scoped-property-uuid",level=ERROR,target="map:merge($all-imports//prop[@uuid] ! map:entry(@uuid,.))?*",name="index-imports-metadata-property-uuid",keyFields=@KeyField(target="@uuid"))},unique={@IsUnique(id="unique-component-definition-capability",level=ERROR,target="capability",keyFields=@KeyField(target="@uuid"),remarks="A given `component` must not be referenced more than once within the same `capability`."),@IsUnique(id="oscal-unique-document-id",formalName="Unique Document Identifier",description="Ensure all document identifiers have a unique combination of @scheme and value.",level=ERROR,target="document-id",keyFields={@KeyField(target="@scheme"),@KeyField}),@IsUnique(id="oscal-unique-property-in-context-location",formalName="Unique Properties",description="Ensure all properties are unique for a given location using a unique combination of @ns, @name, @class. @group. and @value.",level=ERROR,target=".//prop",keyFields={@KeyField(target="path(..)"),@KeyField(target="@name"),@KeyField(target="@ns"),@KeyField(target="@class"),@KeyField(target="@group"),@KeyField(target="@value")}),@IsUnique(id="oscal-unique-link-in-context-location",formalName="Unique Links",description="Ensure all links are unique for a given location using a unique combination of @href, @rel, and @media-type.",level=ERROR,target=".//link",keyFields={@KeyField(target="path(..)"),@KeyField(target="@href"),@KeyField(target="@rel"),@KeyField(target="@media-type")}),@IsUnique(id="oscal-unique-responsibility-in-context-location",formalName="Unique Responsibilities",description="Ensure all responsible-roles and responsible-parties are unique for a given location using a unique combination of @role-id and the combination of @party-uuid values.",level=ERROR,target=".//(responsible-party|responsible-role)",keyFields={@KeyField(target="path(..)"),@KeyField(target="@role-id"),@KeyField(target="@party-uuid")},remarks="Since `responsible-party` and `responsible-role` associate multiple `party-uuid` entries with a single `role-id`, each role-id must be referenced only once.")}))
public class ComponentDefinition
extends Object
implements gov.nist.secauto.metaschema.core.model.IBoundObject
A collection of component descriptions, which may optionally be grouped by capability.
-
Constructor Summary
ConstructorsConstructorDescriptionComponentDefinition
(gov.nist.secauto.metaschema.core.model.IMetaschemaData data) -
Method Summary
Modifier and TypeMethodDescriptionboolean
addCapability
(Capability item) Add a newCapability
item to the underlying collection.boolean
addComponent
(DefinedComponent item) Add a newDefinedComponent
item to the underlying collection.boolean
Add a newImportComponentDefinition
item to the underlying collection.gov.nist.secauto.metaschema.core.model.IMetaschemaData
getUuid()
boolean
removeCapability
(Capability item) Remove the first matchingCapability
item from the underlying collection.boolean
Remove the first matchingDefinedComponent
item from the underlying collection.boolean
Remove the first matchingImportComponentDefinition
item from the underlying collection.void
setBackMatter
(BackMatter value) void
setCapabilities
(List<Capability> value) void
setComponents
(List<DefinedComponent> value) void
void
setMetadata
(Metadata value) void
toString()
-
Constructor Details
-
ComponentDefinition
public ComponentDefinition() -
ComponentDefinition
-
-
Method Details
-
getMetaschemaData
- Specified by:
getMetaschemaData
in interfacegov.nist.secauto.metaschema.core.model.IBoundObject
-
getUuid
-
setUuid
-
getMetadata
-
setMetadata
-
getImportComponentDefinitions
-
setImportComponentDefinitions
-
addImportComponentDefinition
Add a newImportComponentDefinition
item to the underlying collection.- Parameters:
item
- the item to add- Returns:
true
-
removeImportComponentDefinition
Remove the first matchingImportComponentDefinition
item from the underlying collection.- Parameters:
item
- the item to remove- Returns:
true
if the item was removed orfalse
otherwise
-
getComponents
-
setComponents
-
addComponent
Add a newDefinedComponent
item to the underlying collection.- Parameters:
item
- the item to add- Returns:
true
-
removeComponent
Remove the first matchingDefinedComponent
item from the underlying collection.- Parameters:
item
- the item to remove- Returns:
true
if the item was removed orfalse
otherwise
-
getCapabilities
-
setCapabilities
-
addCapability
Add a newCapability
item to the underlying collection.- Parameters:
item
- the item to add- Returns:
true
-
removeCapability
Remove the first matchingCapability
item from the underlying collection.- Parameters:
item
- the item to remove- Returns:
true
if the item was removed orfalse
otherwise
-
getBackMatter
-
setBackMatter
-
toString
-