code: public TrainingSpecification withTrainingChannels(ChannelSpecification... trainingChannels) {
          if (this.trainingChannels == null) {
              setTrainingChannels(new java.util.ArrayList<ChannelSpecification>(trainingChannels.length));
          }
          for (ChannelSpecification ele : trainingChannels) {
              this.trainingChannels.add(ele);
          }
          return this;
      }
docs: <p>
  A list of <code>ChannelSpecification</code> objects, which specify the input sources to be used by the algorithm.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setTrainingChannels(java.util.Collection)} or {@link #withTrainingChannels(java.util.Collection)} if you
  want to override the existing values.
  </p>
  
  @param trainingChannels
  A list of <code>ChannelSpecification</code> objects, which specify the input sources to be used by the
  algorithm.
  @return Returns a reference to this object so that method calls can be chained together.