001package org.galaxyproject.gxformat2.v19_09;
002
003import org.galaxyproject.gxformat2.v19_09.utils.LoaderInstances;
004import org.galaxyproject.gxformat2.v19_09.utils.LoadingOptions;
005import org.galaxyproject.gxformat2.v19_09.utils.LoadingOptionsBuilder;
006import org.galaxyproject.gxformat2.v19_09.utils.SavableImpl;
007import org.galaxyproject.gxformat2.v19_09.utils.ValidationException;
008
009/**
010 * Auto-generated class implementation for <I>https://w3id.org/cwl/salad#EnumSchema</I><br>
011 *
012 * <BLOCKQUOTE>
013 *
014 * Define an enumerated type.
015 *
016 * </BLOCKQUOTE>
017 */
018public class EnumSchemaImpl extends SavableImpl implements EnumSchema {
019  private LoadingOptions loadingOptions_ = new LoadingOptionsBuilder().build();
020  private java.util.Map<String, Object> extensionFields_ = new java.util.HashMap<String, Object>();
021
022  private java.util.List<Object> symbols;
023
024  /**
025   * Getter for property <I>https://w3id.org/cwl/salad#symbols</I><br>
026   *
027   * <BLOCKQUOTE>
028   *
029   * Defines the set of valid symbols. *
030   *
031   * </BLOCKQUOTE>
032   */
033  public java.util.List<Object> getSymbols() {
034    return this.symbols;
035  }
036
037  private enum_d961d79c225752b9fadb617367615ab176b47d77 type;
038
039  /**
040   * Getter for property <I>https://w3id.org/cwl/salad#type</I><br>
041   *
042   * <BLOCKQUOTE>
043   *
044   * Must be `enum` *
045   *
046   * </BLOCKQUOTE>
047   */
048  public enum_d961d79c225752b9fadb617367615ab176b47d77 getType() {
049    return this.type;
050  }
051
052  /**
053   * Used by {@link org.galaxyproject.gxformat2.v19_09.utils.RootLoader} to construct instances of
054   * EnumSchemaImpl.
055   *
056   * @param __doc_ Document fragment to load this record object from (presumably a {@link
057   *     java.util.Map}).
058   * @param __baseUri_ Base URI to generate child document IDs against.
059   * @param __loadingOptions Context for loading URIs and populating objects.
060   * @param __docRoot_ ID at this position in the document (if available) (maybe?)
061   * @throws ValidationException If the document fragment is not a {@link java.util.Map} or
062   *     validation of fields fails.
063   */
064  public EnumSchemaImpl(
065      final Object __doc_,
066      final String __baseUri_,
067      LoadingOptions __loadingOptions,
068      final String __docRoot_) {
069    super(__doc_, __baseUri_, __loadingOptions, __docRoot_);
070    // Prefix plumbing variables with '__' to reduce likelihood of collision with
071    // generated names.
072    String __baseUri = __baseUri_;
073    String __docRoot = __docRoot_;
074    if (!(__doc_ instanceof java.util.Map)) {
075      throw new ValidationException("EnumSchemaImpl called on non-map");
076    }
077    final java.util.Map<String, Object> __doc = (java.util.Map<String, Object>) __doc_;
078    final java.util.List<ValidationException> __errors =
079        new java.util.ArrayList<ValidationException>();
080    if (__loadingOptions != null) {
081      this.loadingOptions_ = __loadingOptions;
082    }
083    java.util.List<Object> symbols;
084    try {
085      symbols =
086          LoaderInstances.uri_array_of_StringInstance_True_False_None.loadField(
087              __doc.get("symbols"), __baseUri, __loadingOptions);
088    } catch (ValidationException e) {
089      symbols = null; // won't be used but prevents compiler from complaining.
090      final String __message = "the `symbols` field is not valid because:";
091      __errors.add(new ValidationException(__message, e));
092    }
093    enum_d961d79c225752b9fadb617367615ab176b47d77 type;
094    try {
095      type =
096          LoaderInstances.typedsl_enum_d961d79c225752b9fadb617367615ab176b47d77_2.loadField(
097              __doc.get("type"), __baseUri, __loadingOptions);
098    } catch (ValidationException e) {
099      type = null; // won't be used but prevents compiler from complaining.
100      final String __message = "the `type` field is not valid because:";
101      __errors.add(new ValidationException(__message, e));
102    }
103    if (!__errors.isEmpty()) {
104      throw new ValidationException("Trying 'RecordField'", __errors);
105    }
106    this.symbols = (java.util.List<Object>) symbols;
107    this.type = (enum_d961d79c225752b9fadb617367615ab176b47d77) type;
108  }
109}