001: /*******************************************************************************
002: * Copyright (c) 2000, 2006 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM - Initial API and implementation
010: *******************************************************************************/package org.eclipse.pde.internal.build.tasks;
011:
012: import org.apache.tools.ant.BuildException;
013: import org.apache.tools.ant.Task;
014: import org.eclipse.core.runtime.CoreException;
015: import org.eclipse.pde.internal.build.*;
016: import org.eclipse.pde.internal.build.site.BuildTimeSiteFactory;
017:
018: /**
019: * Generate fetch scripts for the given elements. This is the implementation of the "eclipse.fetch" Ant task.
020: */
021: public class FetchTask extends Task {
022:
023: /**
024: * The application associated with this Ant task.
025: */
026: protected FetchScriptGenerator generator;
027:
028: /**
029: * Default constructor this class.
030: */
031: public FetchTask() {
032: generator = new FetchScriptGenerator();
033: }
034:
035: /**
036: * Set the boolean value indicating whether or not the fetch scripts should be
037: * generated for the children of the elements. The default is set to <code>true</code>
038: *
039: * @param children <code>true</code> if the children scripts should be generated
040: * and <code>false</code> otherwise
041: * @since 3.0
042: */
043: public void setChildren(boolean children) {
044: generator.setFetchChildren(children);
045: }
046:
047: /**
048: * Set the location for the CVS password file.
049: * @param cvsPassFileLocation the location of the password file
050: */
051: public void setCvsPassFile(String cvsPassFileLocation) {
052: generator.setCvsPassFileLocation(cvsPassFileLocation);
053: }
054:
055: /**
056: * The path to a directory file.
057: * @param directoryLocation the location of a directory file
058: */
059: public void setDirectory(String directoryLocation) {
060: generator.setDirectoryLocation(directoryLocation);
061: }
062:
063: /**
064: * @param element
065: */
066: public void setElements(String element) {
067: generator.setElement(element);
068: }
069:
070: /**
071: * Overrides the tags provided in directory file by the given value.
072: * @param value the tag to be fetched.
073: * @since 3.0
074: */
075: public void setFetchTag(String value) {
076: generator.setFetchTagAsString(value);
077: }
078:
079: /**
080: * Set the folder in which the scripts will be generated, and in which the plugins and features will be fetched.
081: * @param buildDirectory the location where the scripts will be generated and the files fetched.
082: * @since 3.0
083: */
084: public void setBuildDirectory(String buildDirectory) {
085: generator.setWorkingDirectory(buildDirectory);
086: }
087:
088: /**
089: * Set the folder in which the scripts will be generated, and in which the plugins and features will be fetched.
090: * @param installLocation the location where the scripts will be generated and the files fetched.
091: * @deprecated see {@link #setBuildDirectory(String)}
092: */
093: public void setInstall(String installLocation) {
094: generator.setWorkingDirectory(installLocation);
095: }
096:
097: public void execute() throws BuildException {
098: try {
099: BundleHelper.getDefault().setLog(this );
100: generator.generate();
101: BundleHelper.getDefault().setLog(null);
102: } catch (CoreException e) {
103: throw new BuildException(TaskHelper.statusToString(
104: e.getStatus(), null).toString());
105: }
106: }
107:
108: /**
109: * Set the boolean value indicating whether or not the fetch scripts should be
110: * generated for nested features. The default is set to true.
111: * @param recursiveGeneration <code>true</code> if the scripts for the nested features should be generated
112: * and <code>false</code> otherwise.
113: * @since 3.0
114: */
115: public void setRecursiveGeneration(boolean recursiveGeneration) {
116: generator.setRecursiveGeneration(recursiveGeneration);
117: }
118:
119: /**
120: * Set the configuration for which the script should be generated. The default is set to be configuration independent.
121: * @param configInfo an ampersand separated list of configuration (for example win32, win32, x86 & macoxs, carbon, ppc).
122: * @throws CoreException
123: * @since 3.0
124: */
125: public void setConfigInfo(String configInfo) throws CoreException {
126: AbstractScriptGenerator.setConfigInfo(configInfo);
127: }
128:
129: /**
130: * Set a location that contains plugins and features required by plugins and features for which build scripts are being generated.
131: * @param baseLocation a path to a folder
132: * @since 3.1
133: */
134: public void setBaseLocation(String baseLocation) {
135: BuildTimeSiteFactory.setInstalledBaseSite(baseLocation);
136: }
137: }
|