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 011 * <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput</I><br> 012 * 013 * <BLOCKQUOTE> 014 * 015 * Associate an output parameter of the underlying process with a workflow parameter. The workflow 016 * parameter (given in the `id` field) be may be used as a `source` to connect with input parameters 017 * of other workflow steps, or with an output parameter of the process. 018 * 019 * <p>A unique identifier for this workflow output parameter. This is the identifier to use in the 020 * `source` field of `WorkflowStepInput` to connect the output value to downstream parameters. 021 * 022 * </BLOCKQUOTE> 023 */ 024public class WorkflowStepOutputImpl extends SavableImpl implements WorkflowStepOutput { 025 private LoadingOptions loadingOptions_ = new LoadingOptionsBuilder().build(); 026 private java.util.Map<String, Object> extensionFields_ = new java.util.HashMap<String, Object>(); 027 028 private java.util.Optional<String> id; 029 030 /** 031 * Getter for property <I>https://w3id.org/cwl/cwl#Identified/id</I><br> 032 * 033 * <BLOCKQUOTE> 034 * 035 * The unique identifier for this object. * 036 * 037 * </BLOCKQUOTE> 038 */ 039 public java.util.Optional<String> getId() { 040 return this.id; 041 } 042 043 private java.util.Optional<java.util.List<Object>> add_tags; 044 045 /** 046 * Getter for property 047 * <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput/add_tags</I><br> 048 */ 049 public java.util.Optional<java.util.List<Object>> getAdd_tags() { 050 return this.add_tags; 051 } 052 053 private java.util.Optional<String> change_datatype; 054 055 /** 056 * Getter for property 057 * <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput/change_datatype</I><br> 058 */ 059 public java.util.Optional<String> getChange_datatype() { 060 return this.change_datatype; 061 } 062 063 private java.util.Optional<Boolean> delete_intermediate_datasets; 064 065 /** 066 * Getter for property 067 * <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput/delete_intermediate_datasets</I> 068 * <br> 069 */ 070 public java.util.Optional<Boolean> getDelete_intermediate_datasets() { 071 return this.delete_intermediate_datasets; 072 } 073 074 private java.util.Optional<Boolean> hide; 075 076 /** 077 * Getter for property <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput/hide</I> 078 * <br> 079 */ 080 public java.util.Optional<Boolean> getHide() { 081 return this.hide; 082 } 083 084 private java.util.Optional<java.util.List<Object>> remove_tags; 085 086 /** 087 * Getter for property 088 * <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput/remove_tags</I><br> 089 */ 090 public java.util.Optional<java.util.List<Object>> getRemove_tags() { 091 return this.remove_tags; 092 } 093 094 private java.util.Optional<String> rename; 095 096 /** 097 * Getter for property <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput/rename</I> 098 * <br> 099 */ 100 public java.util.Optional<String> getRename() { 101 return this.rename; 102 } 103 104 private java.util.Optional<java.util.List<Object>> set_columns; 105 106 /** 107 * Getter for property 108 * <I>https://galaxyproject.org/gxformat2/v19_09#WorkflowStepOutput/set_columns</I><br> 109 */ 110 public java.util.Optional<java.util.List<Object>> getSet_columns() { 111 return this.set_columns; 112 } 113 114 /** 115 * Used by {@link org.galaxyproject.gxformat2.v19_09.utils.RootLoader} to construct instances of 116 * WorkflowStepOutputImpl. 117 * 118 * @param __doc_ Document fragment to load this record object from (presumably a {@link 119 * java.util.Map}). 120 * @param __baseUri_ Base URI to generate child document IDs against. 121 * @param __loadingOptions Context for loading URIs and populating objects. 122 * @param __docRoot_ ID at this position in the document (if available) (maybe?) 123 * @throws ValidationException If the document fragment is not a {@link java.util.Map} or 124 * validation of fields fails. 125 */ 126 public WorkflowStepOutputImpl( 127 final Object __doc_, 128 final String __baseUri_, 129 LoadingOptions __loadingOptions, 130 final String __docRoot_) { 131 super(__doc_, __baseUri_, __loadingOptions, __docRoot_); 132 // Prefix plumbing variables with '__' to reduce likelihood of collision with 133 // generated names. 134 String __baseUri = __baseUri_; 135 String __docRoot = __docRoot_; 136 if (!(__doc_ instanceof java.util.Map)) { 137 throw new ValidationException("WorkflowStepOutputImpl called on non-map"); 138 } 139 final java.util.Map<String, Object> __doc = (java.util.Map<String, Object>) __doc_; 140 final java.util.List<ValidationException> __errors = 141 new java.util.ArrayList<ValidationException>(); 142 if (__loadingOptions != null) { 143 this.loadingOptions_ = __loadingOptions; 144 } 145 java.util.Optional<String> id; 146 147 if (__doc.containsKey("id")) { 148 try { 149 id = 150 LoaderInstances.uri_optional_StringInstance_True_False_None.loadField( 151 __doc.get("id"), __baseUri, __loadingOptions); 152 } catch (ValidationException e) { 153 id = null; // won't be used but prevents compiler from complaining. 154 final String __message = "the `id` field is not valid because:"; 155 __errors.add(new ValidationException(__message, e)); 156 } 157 158 } else { 159 id = null; 160 } 161 162 if (id == null) { 163 if (__docRoot != null) { 164 id = java.util.Optional.of(__docRoot); 165 } else { 166 id = java.util.Optional.of("_:" + java.util.UUID.randomUUID().toString()); 167 } 168 } 169 __baseUri = (String) id.orElse(null); 170 java.util.Optional<java.util.List<Object>> add_tags; 171 172 if (__doc.containsKey("add_tags")) { 173 try { 174 add_tags = 175 LoaderInstances.optional_array_of_StringInstance.loadField( 176 __doc.get("add_tags"), __baseUri, __loadingOptions); 177 } catch (ValidationException e) { 178 add_tags = null; // won't be used but prevents compiler from complaining. 179 final String __message = "the `add_tags` field is not valid because:"; 180 __errors.add(new ValidationException(__message, e)); 181 } 182 183 } else { 184 add_tags = null; 185 } 186 java.util.Optional<String> change_datatype; 187 188 if (__doc.containsKey("change_datatype")) { 189 try { 190 change_datatype = 191 LoaderInstances.optional_StringInstance.loadField( 192 __doc.get("change_datatype"), __baseUri, __loadingOptions); 193 } catch (ValidationException e) { 194 change_datatype = null; // won't be used but prevents compiler from complaining. 195 final String __message = "the `change_datatype` field is not valid because:"; 196 __errors.add(new ValidationException(__message, e)); 197 } 198 199 } else { 200 change_datatype = null; 201 } 202 java.util.Optional<Boolean> delete_intermediate_datasets; 203 204 if (__doc.containsKey("delete_intermediate_datasets")) { 205 try { 206 delete_intermediate_datasets = 207 LoaderInstances.optional_BooleanInstance.loadField( 208 __doc.get("delete_intermediate_datasets"), __baseUri, __loadingOptions); 209 } catch (ValidationException e) { 210 delete_intermediate_datasets = 211 null; // won't be used but prevents compiler from complaining. 212 final String __message = "the `delete_intermediate_datasets` field is not valid because:"; 213 __errors.add(new ValidationException(__message, e)); 214 } 215 216 } else { 217 delete_intermediate_datasets = null; 218 } 219 java.util.Optional<Boolean> hide; 220 221 if (__doc.containsKey("hide")) { 222 try { 223 hide = 224 LoaderInstances.optional_BooleanInstance.loadField( 225 __doc.get("hide"), __baseUri, __loadingOptions); 226 } catch (ValidationException e) { 227 hide = null; // won't be used but prevents compiler from complaining. 228 final String __message = "the `hide` field is not valid because:"; 229 __errors.add(new ValidationException(__message, e)); 230 } 231 232 } else { 233 hide = null; 234 } 235 java.util.Optional<java.util.List<Object>> remove_tags; 236 237 if (__doc.containsKey("remove_tags")) { 238 try { 239 remove_tags = 240 LoaderInstances.optional_array_of_StringInstance.loadField( 241 __doc.get("remove_tags"), __baseUri, __loadingOptions); 242 } catch (ValidationException e) { 243 remove_tags = null; // won't be used but prevents compiler from complaining. 244 final String __message = "the `remove_tags` field is not valid because:"; 245 __errors.add(new ValidationException(__message, e)); 246 } 247 248 } else { 249 remove_tags = null; 250 } 251 java.util.Optional<String> rename; 252 253 if (__doc.containsKey("rename")) { 254 try { 255 rename = 256 LoaderInstances.optional_StringInstance.loadField( 257 __doc.get("rename"), __baseUri, __loadingOptions); 258 } catch (ValidationException e) { 259 rename = null; // won't be used but prevents compiler from complaining. 260 final String __message = "the `rename` field is not valid because:"; 261 __errors.add(new ValidationException(__message, e)); 262 } 263 264 } else { 265 rename = null; 266 } 267 java.util.Optional<java.util.List<Object>> set_columns; 268 269 if (__doc.containsKey("set_columns")) { 270 try { 271 set_columns = 272 LoaderInstances.optional_array_of_StringInstance.loadField( 273 __doc.get("set_columns"), __baseUri, __loadingOptions); 274 } catch (ValidationException e) { 275 set_columns = null; // won't be used but prevents compiler from complaining. 276 final String __message = "the `set_columns` field is not valid because:"; 277 __errors.add(new ValidationException(__message, e)); 278 } 279 280 } else { 281 set_columns = null; 282 } 283 if (!__errors.isEmpty()) { 284 throw new ValidationException("Trying 'RecordField'", __errors); 285 } 286 this.id = (java.util.Optional<String>) id; 287 this.add_tags = (java.util.Optional<java.util.List<Object>>) add_tags; 288 this.change_datatype = (java.util.Optional<String>) change_datatype; 289 this.delete_intermediate_datasets = (java.util.Optional<Boolean>) delete_intermediate_datasets; 290 this.hide = (java.util.Optional<Boolean>) hide; 291 this.remove_tags = (java.util.Optional<java.util.List<Object>>) remove_tags; 292 this.rename = (java.util.Optional<String>) rename; 293 this.set_columns = (java.util.Optional<java.util.List<Object>>) set_columns; 294 } 295}