001// Generated from: ../../../../../../../../oscal/src/metaschema/oscal_control-common_metaschema.xml
002// Do not edit - changes will be lost when regenerated.
003package dev.metaschema.oscal.lib.model;
004
005import dev.metaschema.core.datatype.markup.MarkupMultiline;
006import dev.metaschema.core.datatype.markup.MarkupMultilineAdapter;
007import dev.metaschema.core.model.IBoundObject;
008import dev.metaschema.core.model.IMetaschemaData;
009import dev.metaschema.core.util.ObjectUtils;
010import dev.metaschema.databind.model.annotations.BoundField;
011import dev.metaschema.databind.model.annotations.MetaschemaAssembly;
012import edu.umd.cs.findbugs.annotations.NonNull;
013import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
014import org.apache.commons.lang3.builder.ToStringStyle;
015
016/**
017 * A prose statement that provides a recommendation for the use of a parameter.
018 */
019@MetaschemaAssembly(
020    formalName = "Guideline",
021    description = "A prose statement that provides a recommendation for the use of a parameter.",
022    name = "parameter-guideline",
023    moduleClass = OscalControlCommonModule.class
024)
025public class ParameterGuideline implements IBoundObject {
026  private final IMetaschemaData __metaschemaData;
027
028  /**
029   * Prose permits multiple paragraphs, lists, tables etc.
030   */
031  @BoundField(
032      formalName = "Guideline Text",
033      description = "Prose permits multiple paragraphs, lists, tables etc.",
034      useName = "prose",
035      minOccurs = 1,
036      inXmlWrapped = false,
037      typeAdapter = MarkupMultilineAdapter.class
038  )
039  private MarkupMultiline _prose;
040
041  /**
042   * Constructs a new {@code dev.metaschema.oscal.lib.model.ParameterGuideline} instance with no metadata.
043   */
044  public ParameterGuideline() {
045    this(null);
046  }
047
048  /**
049   * Constructs a new {@code dev.metaschema.oscal.lib.model.ParameterGuideline} instance with the specified metadata.
050   *
051   * @param data
052   *           the metaschema data, or {@code null} if none
053   */
054  public ParameterGuideline(IMetaschemaData data) {
055    this.__metaschemaData = data;
056  }
057
058  @Override
059  public IMetaschemaData getMetaschemaData() {
060    return __metaschemaData;
061  }
062
063  /**
064   * Get the "{@literal Guideline Text}".
065   *
066   * <p>
067   * Prose permits multiple paragraphs, lists, tables etc.
068   *
069   * @return the prose value
070   */
071  @NonNull
072  public MarkupMultiline getProse() {
073    return _prose;
074  }
075
076  /**
077   * Set the "{@literal Guideline Text}".
078   *
079   * <p>
080   * Prose permits multiple paragraphs, lists, tables etc.
081   *
082   * @param value
083   *           the prose value to set
084   */
085  public void setProse(@NonNull MarkupMultiline value) {
086    _prose = value;
087  }
088
089  @Override
090  public String toString() {
091    return ObjectUtils.notNull(new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString());
092  }
093}