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:
019: package org.apache.tools.ant.taskdefs.optional.jsp.compilers;
020:
021: import java.io.File;
022: import java.util.Enumeration;
023: import java.util.Vector;
024: import org.apache.tools.ant.Project;
025: import org.apache.tools.ant.taskdefs.optional.jsp.JspC;
026: import org.apache.tools.ant.types.CommandlineJava;
027:
028: /**
029: * This is the default implementation for the JspCompilerAdapter interface.
030: * This is currently very light on the ground since only one compiler type is
031: * supported.
032: *
033: */
034: public abstract class DefaultJspCompilerAdapter implements
035: JspCompilerAdapter {
036:
037: private static String lSep = System.getProperty("line.separator");
038:
039: /**
040: * Logs the compilation parameters, adds the files to compile and logs the
041: * "niceSourceList"
042: * @param jspc the compiler task for logging
043: * @param compileList the list of files to compile
044: * @param cmd the command line used
045: */
046: protected void logAndAddFilesToCompile(JspC jspc,
047: Vector compileList, CommandlineJava cmd) {
048: jspc.log("Compilation " + cmd.describeJavaCommand(),
049: Project.MSG_VERBOSE);
050:
051: StringBuffer niceSourceList = new StringBuffer("File");
052: if (compileList.size() != 1) {
053: niceSourceList.append("s");
054: }
055: niceSourceList.append(" to be compiled:");
056:
057: niceSourceList.append(lSep);
058:
059: Enumeration e = compileList.elements();
060: while (e.hasMoreElements()) {
061: String arg = (String) e.nextElement();
062: cmd.createArgument().setValue(arg);
063: niceSourceList.append(" ");
064: niceSourceList.append(arg);
065: niceSourceList.append(lSep);
066: }
067:
068: jspc.log(niceSourceList.toString(), Project.MSG_VERBOSE);
069: }
070:
071: // CheckStyle:VisibilityModifier OFF - bc
072:
073: /**
074: * our owner
075: */
076: protected JspC owner;
077:
078: // CheckStyle:VisibilityModifier ON
079:
080: /**
081: * set the owner
082: * @param owner the owner JspC compiler
083: */
084: public void setJspc(JspC owner) {
085: this .owner = owner;
086: }
087:
088: /** get the owner
089: * @return the owner; should never be null
090: */
091: public JspC getJspc() {
092: return owner;
093: }
094:
095: /**
096: * add an argument oneple to the argument list, if the value aint null
097: * @param cmd the command line
098: * @param argument The argument
099: */
100: protected void addArg(CommandlineJava cmd, String argument) {
101: if (argument != null && argument.length() != 0) {
102: cmd.createArgument().setValue(argument);
103: }
104: }
105:
106: /**
107: * add an argument tuple to the argument list, if the value aint null
108: * @param cmd the command line
109: * @param argument The argument
110: * @param value the parameter
111: */
112: protected void addArg(CommandlineJava cmd, String argument,
113: String value) {
114: if (value != null) {
115: cmd.createArgument().setValue(argument);
116: cmd.createArgument().setValue(value);
117: }
118: }
119:
120: /**
121: * add an argument tuple to the arg list, if the file parameter aint null
122: * @param cmd the command line
123: * @param argument The argument
124: * @param file the parameter
125: */
126: protected void addArg(CommandlineJava cmd, String argument,
127: File file) {
128: if (file != null) {
129: cmd.createArgument().setValue(argument);
130: cmd.createArgument().setFile(file);
131: }
132: }
133:
134: /**
135: * ask if compiler can sort out its own dependencies
136: * @return true if the compiler wants to do its own
137: * depends
138: */
139: public boolean implements OwnDependencyChecking() {
140: return false;
141: }
142:
143: /**
144: * get our project
145: * @return owner project data
146: */
147: public Project getProject() {
148: return getJspc().getProject();
149: }
150: }
|