diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJDoc.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJDoc.java | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJDoc.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJDoc.java deleted file mode 100644 index a4dc0f48..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/javacc/JJDoc.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * 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 - * - * http://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.tools.ant.taskdefs.optional.javacc; - -import java.io.File; -import java.io.IOException; -import java.util.Enumeration; -import java.util.Hashtable; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.taskdefs.Execute; -import org.apache.tools.ant.taskdefs.LogStreamHandler; -import org.apache.tools.ant.types.Commandline; -import org.apache.tools.ant.types.CommandlineJava; -import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.JavaEnvUtils; - -/** - * Runs the JJDoc compiler compiler. - * - */ -public class JJDoc extends Task { - - // keys to optional attributes - private static final String OUTPUT_FILE = "OUTPUT_FILE"; - private static final String TEXT = "TEXT"; - private static final String ONE_TABLE = "ONE_TABLE"; - - private final Hashtable optionalAttrs = new Hashtable(); - - private String outputFile = null; - private boolean plainText = false; - - private static final String DEFAULT_SUFFIX_HTML = ".html"; - private static final String DEFAULT_SUFFIX_TEXT = ".txt"; - - // required attributes - private File targetFile = null; - private File javaccHome = null; - - private CommandlineJava cmdl = new CommandlineJava(); - - private String maxMemory = null; - - /** - * Sets the TEXT BNF documentation option. - * @param plainText a <code>boolean</code> value. - */ - public void setText(boolean plainText) { - optionalAttrs.put(TEXT, plainText ? Boolean.TRUE : Boolean.FALSE); - this.plainText = plainText; - } - - /** - * Sets the ONE_TABLE documentation option. - * @param oneTable a <code>boolean</code> value. - */ - public void setOnetable(boolean oneTable) { - optionalAttrs.put(ONE_TABLE, oneTable ? Boolean.TRUE : Boolean.FALSE); - } - - /** - * The outputfile to write the generated BNF documentation file to. - * If not set, the file is written with the same name as - * the JavaCC grammar file with a suffix .html or .txt. - * @param outputFile the name of the output file. - */ - public void setOutputfile(String outputFile) { - this.outputFile = outputFile; - } - - /** - * The javacc grammar file to process. - * @param target the grammar file. - */ - public void setTarget(File target) { - this.targetFile = target; - } - - /** - * The directory containing the JavaCC distribution. - * @param javaccHome the home directory. - */ - public void setJavacchome(File javaccHome) { - this.javaccHome = javaccHome; - } - - /** - * Corresponds -Xmx. - * - * @param max max memory parameter. - * @since Ant 1.8.3 - */ - public void setMaxmemory(String max) { - maxMemory = max; - } - - /** - * Constructor - */ - public JJDoc() { - cmdl.setVm(JavaEnvUtils.getJreExecutable("java")); - } - - /** - * Do the task. - * @throws BuildException if there is an error. - */ - public void execute() throws BuildException { - - // load command line with optional attributes - Enumeration iter = optionalAttrs.keys(); - while (iter.hasMoreElements()) { - String name = (String) iter.nextElement(); - Object value = optionalAttrs.get(name); - cmdl.createArgument() - .setValue("-" + name + ":" + value.toString()); - } - - if (targetFile == null || !targetFile.isFile()) { - throw new BuildException("Invalid target: " + targetFile); - } - - if (outputFile != null) { - cmdl.createArgument() .setValue("-" + OUTPUT_FILE + ":" - + outputFile.replace('\\', '/')); - } - - // use the directory containing the target as the output directory - File javaFile = new File(createOutputFileName(targetFile, outputFile, - plainText)); - - if (javaFile.exists() - && targetFile.lastModified() < javaFile.lastModified()) { - log("Target is already built - skipping (" + targetFile + ")", - Project.MSG_VERBOSE); - return; - } - - cmdl.createArgument().setValue(targetFile.getAbsolutePath()); - - final Path classpath = cmdl.createClasspath(getProject()); - final File javaccJar = JavaCC.getArchiveFile(javaccHome); - classpath.createPathElement().setPath(javaccJar.getAbsolutePath()); - classpath.addJavaRuntime(); - - cmdl.setClassname(JavaCC.getMainClass(classpath, - JavaCC.TASKDEF_TYPE_JJDOC)); - - cmdl.setMaxmemory(maxMemory); - final Commandline.Argument arg = cmdl.createVmArgument(); - arg.setValue("-Dinstall.root=" + javaccHome.getAbsolutePath()); - - final Execute process = - new Execute(new LogStreamHandler(this, - Project.MSG_INFO, - Project.MSG_INFO), - null); - log(cmdl.describeCommand(), Project.MSG_VERBOSE); - process.setCommandline(cmdl.getCommandline()); - - try { - if (process.execute() != 0) { - throw new BuildException("JJDoc failed."); - } - } catch (IOException e) { - throw new BuildException("Failed to launch JJDoc", e); - } - } - - private String createOutputFileName(File destFile, String optionalOutputFile, - boolean plain) { - String suffix = DEFAULT_SUFFIX_HTML; - String javaccFile = destFile.getAbsolutePath().replace('\\', '/'); - - if (plain) { - suffix = DEFAULT_SUFFIX_TEXT; - } - - if ((optionalOutputFile == null) || optionalOutputFile.equals("")) { - int filePos = javaccFile.lastIndexOf("/"); - - if (filePos >= 0) { - javaccFile = javaccFile.substring(filePos + 1); - } - - int suffixPos = javaccFile.lastIndexOf('.'); - - if (suffixPos == -1) { - optionalOutputFile = javaccFile + suffix; - } else { - String currentSuffix = javaccFile.substring(suffixPos); - - if (currentSuffix.equals(suffix)) { - optionalOutputFile = javaccFile + suffix; - } else { - optionalOutputFile = javaccFile.substring(0, suffixPos) - + suffix; - } - } - } else { - optionalOutputFile = optionalOutputFile.replace('\\', '/'); - } - - return (getProject().getBaseDir() + "/" + optionalOutputFile) - .replace('\\', '/'); - } -} |