001package gov.nist.secauto.oscal.lib.model;
002
003import gov.nist.secauto.metaschema.core.datatype.adapter.StringAdapter;
004import gov.nist.secauto.metaschema.core.model.IBoundObject;
005import gov.nist.secauto.metaschema.core.model.IMetaschemaData;
006import gov.nist.secauto.metaschema.databind.model.annotations.BoundFlag;
007import gov.nist.secauto.metaschema.databind.model.annotations.MetaschemaAssembly;
008import java.lang.Override;
009import java.lang.String;
010import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
011import org.apache.commons.lang3.builder.ToStringStyle;
012
013/**
014 * Selecting a set of controls by matching their IDs with a wildcard pattern.
015 */
016@MetaschemaAssembly(
017    formalName = "Match Controls by Pattern",
018    description = "Selecting a set of controls by matching their IDs with a wildcard pattern.",
019    name = "matching",
020    moduleClass = OscalProfileModule.class
021)
022public class Matching implements IBoundObject {
023  private final IMetaschemaData __metaschemaData;
024
025  /**
026   * "A <a href=\"https://en.wikipedia.org/wiki/Glob_(programming)\">glob expression</a> matching the IDs of one or more controls to be selected."
027   */
028  @BoundFlag(
029      formalName = "Pattern",
030      description = "A [glob expression](https://en.wikipedia.org/wiki/Glob_(programming)) matching the IDs of one or more controls to be selected.",
031      name = "pattern",
032      typeAdapter = StringAdapter.class
033  )
034  private String _pattern;
035
036  public Matching() {
037    this(null);
038  }
039
040  public Matching(IMetaschemaData data) {
041    this.__metaschemaData = data;
042  }
043
044  @Override
045  public IMetaschemaData getMetaschemaData() {
046    return __metaschemaData;
047  }
048
049  public String getPattern() {
050    return _pattern;
051  }
052
053  public void setPattern(String value) {
054    _pattern = value;
055  }
056
057  @Override
058  public String toString() {
059    return new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString();
060  }
061}