/*
 *  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.tools.ant.taskdefs.optional.jsp;

import java.io.File;

this class implements the name mangling rules of the jasper in tomcat4.1.x which is likely to remain for some time
See Also:
  • org.apache.jasper.JspCompilationContext
/** * this class implements the name mangling rules of the jasper in tomcat4.1.x * which is likely to remain for some time * @see "org.apache.jasper.JspCompilationContext" */
public class Jasper41Mangler implements JspMangler {
map from a jsp file to a java filename; does not do packages
Params:
  • jspFile – file
Returns:java filename
/** * map from a jsp file to a java filename; does not do packages * * @param jspFile file * @return java filename */
@Override public String mapJspToJavaName(File jspFile) { String jspUri = jspFile.getAbsolutePath(); int start = jspUri.lastIndexOf(File.separatorChar) + 1; StringBuilder modifiedClassName = new StringBuilder(jspUri.length() - start); if (!Character.isJavaIdentifierStart(jspUri.charAt(start)) || jspUri.charAt(start) == '_') { // If the first char is not a start of Java identifier or is _ // prepend a '_'. modifiedClassName.append('_'); } for (final char ch : jspUri.substring(start).toCharArray()) { if (Character.isJavaIdentifierPart(ch)) { modifiedClassName.append(ch); } else if (ch == '.') { modifiedClassName.append('_'); } else { modifiedClassName.append(mangleChar(ch)); } } return modifiedClassName.toString(); }
Mangle the specified character to create a legal Java class name.
/** * Mangle the specified character to create a legal Java class name. */
private static String mangleChar(char ch) { // CheckStyle:MagicNumber OFF String s = Integer.toHexString(ch); int nzeros = 5 - s.length(); char[] result = new char[6]; result[0] = '_'; for (int i = 1; i <= nzeros; i++) { result[i] = '0'; } for (int i = nzeros + 1, j = 0; i < 6; i++, j++) { result[i] = s.charAt(j); } return new String(result); // CheckStyle:MagicNumber ON }
taking in the substring representing the path relative to the source dir return a new string representing the destination path
Params:
  • path – not used.
Returns:null as this is not implemented.
@todo
/** * taking in the substring representing the path relative to the source dir * return a new string representing the destination path * @param path not used. * @return null as this is not implemented. * @todo */
@Override public String mapPath(String path) { return null; } }