SelectSubjectById.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.BoundField;
- import gov.nist.secauto.metaschema.binding.model.annotations.BoundFieldValue;
- 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.datatype.markup.MarkupMultiline;
- import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultilineAdapter;
- 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;
- /**
- * Identifies a set of assessment subjects to include/exclude by UUID.
- */
- @MetaschemaAssembly(
- formalName = "Select Assessment Subject",
- description = "Identifies a set of assessment subjects to include/exclude by UUID.",
- name = "select-subject-by-id",
- metaschema = OscalAssessmentCommonMetaschema.class
- )
- public class SelectSubjectById {
- @BoundFlag(
- formalName = "Subject Universally Unique Identifier Reference",
- description = "A [machine-oriented](https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented) identifier reference to a component, inventory-item, location, party, user, or resource using it's UUID.",
- useName = "subject-uuid",
- required = true,
- typeAdapter = UuidAdapter.class
- )
- private UUID _subjectUuid;
- @BoundFlag(
- formalName = "Subject Universally Unique Identifier Reference Type",
- description = "Used to indicate the type of object pointed to by the `uuid-ref` within a subject.",
- useName = "type",
- required = true,
- typeAdapter = TokenAdapter.class
- )
- @ValueConstraints(
- allowedValues = @AllowedValues(level = IConstraint.Level.ERROR, allowOthers = true, values = {@AllowedValue(value = "component", description = "Component"), @AllowedValue(value = "inventory-item", description = "Inventory Item"), @AllowedValue(value = "location", description = "Location"), @AllowedValue(value = "party", description = "Interview Party"), @AllowedValue(value = "user", description = "User"), @AllowedValue(value = "resource", description = "Resource or Artifact")})
- )
- private String _type;
- @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;
- @BoundField(
- formalName = "Remarks",
- description = "Additional commentary about the containing object.",
- useName = "remarks"
- )
- @BoundFieldValue(
- typeAdapter = MarkupMultilineAdapter.class
- )
- private MarkupMultiline _remarks;
- public SelectSubjectById() {
- }
- public UUID getSubjectUuid() {
- return _subjectUuid;
- }
- public void setSubjectUuid(UUID value) {
- _subjectUuid = value;
- }
- public String getType() {
- return _type;
- }
- public void setType(String value) {
- _type = 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);
- }
- public MarkupMultiline getRemarks() {
- return _remarks;
- }
- public void setRemarks(MarkupMultiline value) {
- _remarks = value;
- }
- @Override
- public String toString() {
- return new ReflectionToStringBuilder(this, MultilineRecursiveToStringStyle.MULTI_LINE_STYLE).toString();
- }
- }