code: public BuildPhase withContexts(PhaseContext... contexts) {
          if (this.contexts == null) {
              setContexts(new java.util.ArrayList<PhaseContext>(contexts.length));
          }
          for (PhaseContext ele : contexts) {
              this.contexts.add(ele);
          }
          return this;
      }
docs: <p>
  Additional information about a build phase, especially to help troubleshoot a failed build.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setContexts(java.util.Collection)} or {@link #withContexts(java.util.Collection)} if you want to override
  the existing values.
  </p>
  
  @param contexts
  Additional information about a build phase, especially to help troubleshoot a failed build.
  @return Returns a reference to this object so that method calls can be chained together.