OriginActor.java
- package gov.nist.secauto.oscal.lib.model;
- import gov.nist.secauto.metaschema.binding.model.annotations.AllowedValue;
- import gov.nist.secauto.metaschema.binding.model.annotations.AllowedValues;
- import gov.nist.secauto.metaschema.binding.model.annotations.BoundAssembly;
- import gov.nist.secauto.metaschema.binding.model.annotations.BoundFlag;
- import gov.nist.secauto.metaschema.binding.model.annotations.GroupAs;
- import gov.nist.secauto.metaschema.binding.model.annotations.MetaschemaAssembly;
- import gov.nist.secauto.metaschema.binding.model.annotations.ValueConstraints;
- import gov.nist.secauto.metaschema.model.common.JsonGroupAsBehavior;
- import gov.nist.secauto.metaschema.model.common.constraint.IConstraint;
- import gov.nist.secauto.metaschema.model.common.datatype.adapter.TokenAdapter;
- import gov.nist.secauto.metaschema.model.common.datatype.adapter.UuidAdapter;
- import gov.nist.secauto.metaschema.model.common.util.ObjectUtils;
- import java.lang.Override;
- import java.lang.String;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.UUID;
- import org.apache.commons.lang3.builder.MultilineRecursiveToStringStyle;
- import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
- /**
- * The actor that produces an observation, a finding, or a risk. One or more actor type can be used to specify a person that is using a tool.
- */
- @MetaschemaAssembly(
- formalName = "Originating Actor",
- description = "The actor that produces an observation, a finding, or a risk. One or more actor type can be used to specify a person that is using a tool.",
- name = "origin-actor",
- metaschema = OscalAssessmentCommonMetaschema.class
- )
- public class OriginActor {
- @BoundFlag(
- formalName = "Actor Type",
- description = "The kind of actor.",
- useName = "type",
- required = true,
- typeAdapter = TokenAdapter.class
- )
- @ValueConstraints(
- allowedValues = @AllowedValues(level = IConstraint.Level.ERROR, values = {@AllowedValue(value = "tool", description = "A reference to a tool component defined with the assessment assets."), @AllowedValue(value = "assessment-platform", description = "A reference to an assessment-platform defined with the assessment assets."), @AllowedValue(value = "party", description = "A reference to a party defined within the document metadata.")})
- )
- private String _type;
- @BoundFlag(
- formalName = "Actor Universally Unique Identifier Reference",
- description = "A [machine-oriented](https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented) identifier reference to the tool or person based on the associated type.",
- useName = "actor-uuid",
- required = true,
- typeAdapter = UuidAdapter.class
- )
- private UUID _actorUuid;
- @BoundFlag(
- formalName = "Actor Role",
- description = "For a party, this can optionally be used to specify the role the actor was performing.",
- useName = "role-id",
- typeAdapter = TokenAdapter.class
- )
- private String _roleId;
- @BoundAssembly(
- formalName = "Property",
- description = "An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair.",
- useName = "prop",
- maxOccurs = -1
- )
- @GroupAs(
- name = "props",
- inJson = JsonGroupAsBehavior.LIST
- )
- private List<Property> _props;
- @BoundAssembly(
- formalName = "Link",
- description = "A reference to a local or remote resource, that has a specific relation to the containing object.",
- useName = "link",
- maxOccurs = -1
- )
- @GroupAs(
- name = "links",
- inJson = JsonGroupAsBehavior.LIST
- )
- private List<Link> _links;
- public OriginActor() {
- }
- public String getType() {
- return _type;
- }
- public void setType(String value) {
- _type = value;
- }
- public UUID getActorUuid() {
- return _actorUuid;
- }
- public void setActorUuid(UUID value) {
- _actorUuid = value;
- }
- public String getRoleId() {
- return _roleId;
- }
- public void setRoleId(String value) {
- _roleId = value;
- }
- public List<Property> getProps() {
- return _props;
- }
- public void setProps(List<Property> value) {
- _props = value;
- }
- /**
- * Add a new {@link Property} item to the underlying collection.
- * @param item the item to add
- * @return {@code true}
- */
- public boolean addProp(Property item) {
- Property value = ObjectUtils.requireNonNull(item,"item cannot be null");
- if (_props == null) {
- _props = new LinkedList<>();
- }
- return _props.add(value);
- }
- /**
- * Remove the first matching {@link Property} item from the underlying collection.
- * @param item the item to remove
- * @return {@code true} if the item was removed or {@code false} otherwise
- */
- public boolean removeProp(Property item) {
- Property value = ObjectUtils.requireNonNull(item,"item cannot be null");
- return _props == null ? false : _props.remove(value);
- }
- public List<Link> getLinks() {
- return _links;
- }
- public void setLinks(List<Link> value) {
- _links = value;
- }
- /**
- * Add a new {@link Link} item to the underlying collection.
- * @param item the item to add
- * @return {@code true}
- */
- public boolean addLink(Link item) {
- Link value = ObjectUtils.requireNonNull(item,"item cannot be null");
- if (_links == null) {
- _links = new LinkedList<>();
- }
- return _links.add(value);
- }
- /**
- * Remove the first matching {@link Link} item from the underlying collection.
- * @param item the item to remove
- * @return {@code true} if the item was removed or {@code false} otherwise
- */
- public boolean removeLink(Link item) {
- Link value = ObjectUtils.requireNonNull(item,"item cannot be null");
- return _links == null ? false : _links.remove(value);
- }
- @Override
- public String toString() {
- return new ReflectionToStringBuilder(this, MultilineRecursiveToStringStyle.MULTI_LINE_STYLE).toString();
- }
- }