001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: *
017: */
018: package org.apache.tools.ant.taskdefs.optional;
019:
020: import java.io.File;
021: import org.apache.tools.ant.BuildException;
022: import org.apache.tools.ant.Project;
023: import org.apache.tools.ant.Task;
024: import org.apache.tools.ant.util.ScriptRunnerHelper;
025: import org.apache.tools.ant.types.Path;
026: import org.apache.tools.ant.types.Reference;
027:
028: /**
029: * Executes a script.
030: *
031: * @ant.task name="script"
032: */
033: public class Script extends Task {
034:
035: private ScriptRunnerHelper helper = new ScriptRunnerHelper();
036:
037: /**
038: * Set the project.
039: * @param project the project that this task belongs to.
040: */
041: public void setProject(Project project) {
042: super .setProject(project);
043: helper.setProjectComponent(this );
044: }
045:
046: /**
047: * Run the script using the helper object.
048: *
049: * @exception BuildException if something goes wrong with the build
050: */
051: public void execute() throws BuildException {
052: helper.getScriptRunner().executeScript("ANT");
053: }
054:
055: /**
056: * Defines the manager.
057: *
058: * @param manager the scripting manager.
059: */
060: public void setManager(String manager) {
061: helper.setManager(manager);
062: }
063:
064: /**
065: * Defines the language (required).
066: *
067: * @param language the scripting language name for the script.
068: */
069: public void setLanguage(String language) {
070: helper.setLanguage(language);
071: }
072:
073: /**
074: * Load the script from an external file ; optional.
075: *
076: * @param fileName the name of the file containing the script source.
077: */
078: public void setSrc(String fileName) {
079: helper.setSrc(new File(fileName));
080: }
081:
082: /**
083: * Set the script text.
084: *
085: * @param text a component of the script text to be added.
086: */
087: public void addText(String text) {
088: helper.addText(text);
089: }
090:
091: /**
092: * Set the classpath to be used when searching for classes and resources.
093: *
094: * @param classpath an Ant Path object containing the search path.
095: */
096: public void setClasspath(Path classpath) {
097: helper.setClasspath(classpath);
098: }
099:
100: /**
101: * Classpath to be used when searching for classes and resources.
102: *
103: * @return an empty Path instance to be configured by Ant.
104: */
105: public Path createClasspath() {
106: return helper.createClasspath();
107: }
108:
109: /**
110: * Set the classpath by reference.
111: *
112: * @param r a Reference to a Path instance to be used as the classpath
113: * value.
114: */
115: public void setClasspathRef(Reference r) {
116: helper.setClasspathRef(r);
117: }
118:
119: /**
120: * Set the setbeans attribute.
121: * If this is true, <script> will create variables in the
122: * script instance for all
123: * properties, targets and references of the current project.
124: * It this is false, only the project and self variables will
125: * be set.
126: * The default is true.
127: * @param setBeans the value to set.
128: */
129: public void setSetBeans(boolean setBeans) {
130: helper.setSetBeans(setBeans);
131: }
132: }
|