content: /*
   *  Licensed to the Apache Software Foundation (ASF) under one or more
   *  contributor license agreements.  See the NOTICE file distributed with
   *  this work for additional information regarding copyright ownership.
   *  The ASF licenses this file to You under the Apache License, Version 2.0
   *  (the "License"); you may not use this file except in compliance with
   *  the License.  You may obtain a copy of the License at
   *
   *      https://www.apache.org/licenses/LICENSE-2.0
   *
   *  Unless required by applicable law or agreed to in writing, software
   *  distributed under the License is distributed on an "AS IS" BASIS,
   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *  See the License for the specific language governing permissions and
   *  limitations under the License.
   *
   */
  package org.apache.ivy.core.publish;
  
  import java.util.Date;
  
  import org.apache.ivy.core.module.descriptor.Artifact;
  
  /**
   * A set of options used during publish related tasks The publish can update the ivy file to publish
   * if update is set to true. In this case it will use the given pubrevision, pubdate and status. If
   * pudate is null it will default to the current date. If status is null it will default to the
   * current ivy file status (which itself defaults to integration if none is found). If update is
   * false, then if the revision is not the same in the ivy file than the one expected (given as
   * parameter), this method will fail with an IllegalArgumentException. pubdate and status are not
   * used if update is false. extra artifacts can be used to publish more artifacts than actually
   * declared in the ivy file. This can be useful to publish additional metadata or reports. The extra
   * artifacts array can be null (= no extra artifacts), and if non null only the name, type, ext url
   * and extra attributes of the artifacts are really used. Other methods (on the artifacts) can
   * return null safely.
   *
   * @see PublishEngine
   */
  public class PublishOptions {
      private String srcIvyPattern;
  
      private String pubrevision;
  
      private String status;
  
      private Date pubdate;
  
      private Artifact[] extraArtifacts;
  
      private boolean validate;
  
      private boolean overwrite;
  
      private boolean update;
  
      private boolean merge = true;
  
      private String[] confs;
  
      private boolean haltonmissing;
  
      private String pubBranch;
  
      private boolean warnonmissing;
  
      public String[] getConfs() {
          return confs;
      }
  
      public PublishOptions setConfs(String[] confs) {
          this.confs = confs;
          return this;
      }
  
      public Artifact[] getExtraArtifacts() {
          return extraArtifacts;
      }
  
      public PublishOptions setExtraArtifacts(Artifact[] extraArtifacts) {
          this.extraArtifacts = extraArtifacts;
          return this;
      }
  
      public boolean isOverwrite() {
          return overwrite;
      }
  
      public PublishOptions setOverwrite(boolean overwrite) {
          this.overwrite = overwrite;
          return this;
      }
  
      public Date getPubdate() {
          return pubdate;
      }
  
      public PublishOptions setPubdate(Date pubdate) {
          this.pubdate = pubdate;
          return this;
      }
  
      public String getPubrevision() {
          return pubrevision;
      }
  
      public PublishOptions setPubrevision(String pubrevision) {
          this.pubrevision = pubrevision;
          return this;
      }
  
      public String getSrcIvyPattern() {
          return srcIvyPattern;
      }
  
      public PublishOptions setSrcIvyPattern(String srcIvyPattern) {
          this.srcIvyPattern = srcIvyPattern;
          return this;
      }
  
      public String getStatus() {
          return status;
      }
  
      public PublishOptions setStatus(String status) {
          this.status = status;
          return this;
      }
  
      public boolean isUpdate() {
          return update;
      }
  
      public PublishOptions setUpdate(boolean update) {
          this.update = update;
          return this;
      }
  
      public boolean isMerge() {
          return merge;
      }
  
      public PublishOptions setMerge(boolean merge) {
          this.merge = merge;
          return this;
      }
  
      public boolean isValidate() {
          return validate;
      }
  
      public PublishOptions setValidate(boolean validate) {
          this.validate = validate;
          return this;
      }
  
      public boolean isHaltOnMissing() {
          return haltonmissing;
      }
  
      public PublishOptions setHaltOnMissing(boolean haltonmissing) {
          this.haltonmissing = haltonmissing;
          return this;
      }
  
      public String getPubBranch() {
          return pubBranch;
      }
  
      public PublishOptions setPubbranch(String pubbranch) {
          this.pubBranch = pubbranch;
          return this;
      }
  
      public boolean isWarnOnMissing() {
          return warnonmissing;
      }
  
      public PublishOptions setWarnOnMissing(boolean warnonmissing) {
          this.warnonmissing = warnonmissing;
          return this;
      }
  
  }
  