| /* |
| * 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.deliver; |
| |
| import java.util.Date; |
| |
| import org.apache.ivy.core.settings.IvySettings; |
| |
| /** |
| * A set of options used to do a deliver. |
| */ |
| public class DeliverOptions { |
| private String status; |
| |
| private Date pubdate; |
| |
| private PublishingDependencyRevisionResolver pdrResolver = new DefaultPublishingDRResolver(); |
| |
| private boolean validate = true; |
| |
| private boolean resolveDynamicRevisions = true; |
| |
| private boolean replaceForcedRevisions = false; |
| |
| private String resolveId; |
| |
| private String[] confs; |
| |
| private String pubBranch; |
| |
| /** |
| * True to indicate that the revConstraint attribute should be generated if applicable, false to |
| * never generate the revConstraint attribute. |
| */ |
| private boolean generateRevConstraint = true; |
| |
| /** true to merge parent descriptor elements into delivered child descriptor */ |
| private boolean merge = true; |
| |
| /** |
| * Returns an instance of DeliverOptions with options corresponding to default values taken from |
| * the given settings. |
| * |
| * @param settings |
| * The settings to use to get default option values |
| * @return a DeliverOptions instance ready to be used or customized |
| */ |
| public static DeliverOptions newInstance(IvySettings settings) { |
| return new DeliverOptions(null, new Date(), new DefaultPublishingDRResolver(), |
| settings.doValidate(), true, null); |
| } |
| |
| /** |
| * Creates an instance of DeliverOptions which require to be configured using the appropriate |
| * setters. |
| */ |
| public DeliverOptions() { |
| } |
| |
| /** |
| * Creates an instance of DeliverOptions with all options explicitly set. |
| * @param status String |
| * @param pubDate Date |
| * @param pdrResolver PublishingDependencyRevisionResolver |
| * @param validate boolean |
| * @param resolveDynamicRevisions boolean |
| * @param confs String[] |
| */ |
| public DeliverOptions(String status, Date pubDate, |
| PublishingDependencyRevisionResolver pdrResolver, boolean validate, |
| boolean resolveDynamicRevisions, String[] confs) { |
| this.status = status; |
| this.pubdate = pubDate; |
| this.pdrResolver = pdrResolver; |
| this.validate = validate; |
| this.resolveDynamicRevisions = resolveDynamicRevisions; |
| this.confs = confs; |
| } |
| |
| /** |
| * Return the pdrResolver that will be used during deliver for each dependency to get its |
| * published information. This can particularly useful when the deliver is made for a release, |
| * and when we wish to deliver each dependency which is still in integration. The |
| * PublishingDependencyRevisionResolver can then do the delivering work for the dependency and |
| * return the new (delivered) dependency info (with the delivered revision). Note that |
| * PublishingDependencyRevisionResolver is only called for each <b>direct</b> dependency. |
| * |
| * @return the pdrResolver that will be used during deliver |
| */ |
| public PublishingDependencyRevisionResolver getPdrResolver() { |
| return pdrResolver; |
| } |
| |
| /** |
| * Sets the pdrResolver that will be used during deliver for each dependency to get its |
| * published information. This can particularly useful when the deliver is made for a release, |
| * and when we wish to deliver each dependency which is still in integration. The |
| * PublishingDependencyRevisionResolver can then do the delivering work for the dependency and |
| * return the new (delivered) dependency info (with the delivered revision). Note that |
| * PublishingDependencyRevisionResolver is only called for each <b>direct</b> dependency. |
| * |
| * @param pdrResolver PublishingDependencyRevisionResolver |
| * @return the instance of DeliverOptions on which the method has been called, for easy method |
| * chaining |
| */ |
| public DeliverOptions setPdrResolver(PublishingDependencyRevisionResolver pdrResolver) { |
| this.pdrResolver = pdrResolver; |
| return this; |
| } |
| |
| public boolean isResolveDynamicRevisions() { |
| return resolveDynamicRevisions; |
| } |
| |
| public DeliverOptions setResolveDynamicRevisions(boolean resolveDynamicRevisions) { |
| this.resolveDynamicRevisions = resolveDynamicRevisions; |
| return this; |
| } |
| |
| public boolean isReplaceForcedRevisions() { |
| return replaceForcedRevisions; |
| } |
| |
| public DeliverOptions setReplaceForcedRevisions(boolean replaceForcedRevisions) { |
| this.replaceForcedRevisions = replaceForcedRevisions; |
| return this; |
| } |
| |
| public boolean isValidate() { |
| return validate; |
| } |
| |
| public DeliverOptions setValidate(boolean validate) { |
| this.validate = validate; |
| return this; |
| } |
| |
| public Date getPubdate() { |
| return pubdate; |
| } |
| |
| public DeliverOptions setPubdate(Date pubdate) { |
| this.pubdate = pubdate; |
| return this; |
| } |
| |
| /** |
| * Returns the status to which the module should be delivered, or null if the current status |
| * should be kept. |
| * |
| * @return the status to which the module should be delivered |
| */ |
| public String getStatus() { |
| return status; |
| } |
| |
| /** |
| * Sets the status to which the module should be delivered, use null if the current status |
| * should be kept. |
| * |
| * @param status String |
| * @return the instance of DeliverOptions on which the method has been called, for easy method |
| * chaining |
| */ |
| public DeliverOptions setStatus(String status) { |
| this.status = status; |
| return this; |
| } |
| |
| /** |
| * Returns the id of a previous resolve to use for delivering. |
| * |
| * @return the id of a previous resolve |
| */ |
| public String getResolveId() { |
| return resolveId; |
| } |
| |
| /** |
| * Sets the id of a previous resolve to use for delivering. |
| * |
| * @param resolveId |
| * the id of a previous resolve |
| * @return the instance of DeliverOptions on which the method has been called, for easy method |
| * chaining |
| */ |
| public DeliverOptions setResolveId(String resolveId) { |
| this.resolveId = resolveId; |
| return this; |
| } |
| |
| /** |
| * Return the configurations which must be delivered. Returns <tt>null</tt> if all |
| * configurations has to be delivered. Attention: the returned array can contain wildcards! |
| * |
| * @return the configurations to deliver |
| */ |
| public String[] getConfs() { |
| return confs; |
| } |
| |
| /** |
| * Sets the configurations to deliver. |
| * |
| * @param confs |
| * the configurations to deliver |
| * @return the instance of DeliverOptions on which the method has been called, for easy method |
| * chaining |
| */ |
| public DeliverOptions setConfs(String[] confs) { |
| this.confs = confs; |
| return this; |
| } |
| |
| /** |
| * Returns the branch with which the Ivy file should be delivered, or <code>null</code> if |
| * branch info shouldn't be changed. |
| * |
| * @return the branch with which the Ivy file should be delivered |
| */ |
| public String getPubBranch() { |
| return pubBranch; |
| } |
| |
| /** |
| * Sets the branch with which the Ivy file should be delivered. |
| * |
| * @param pubBranch |
| * the branch with which the Ivy file should be delivered |
| * @return the instance of DeliverOptions on which the method has been called, for easy method |
| * chaining |
| */ |
| public DeliverOptions setPubBranch(String pubBranch) { |
| this.pubBranch = pubBranch; |
| return this; |
| } |
| |
| public boolean isGenerateRevConstraint() { |
| return generateRevConstraint; |
| } |
| |
| public DeliverOptions setGenerateRevConstraint(boolean generateRevConstraint) { |
| this.generateRevConstraint = generateRevConstraint; |
| return this; |
| } |
| |
| public boolean isMerge() { |
| return merge; |
| } |
| |
| public DeliverOptions setMerge(boolean merge) { |
| this.merge = merge; |
| return this; |
| } |
| |
| public String toString() { |
| return "status=" + status + " pubdate=" + pubdate + " validate=" + validate |
| + " resolveDynamicRevisions=" + resolveDynamicRevisions + " merge=" + merge |
| + " resolveId=" + resolveId + " pubBranch=" + pubBranch; |
| } |
| |
| } |