Util.java revision 830
0N/A * The contents of this file are subject to the terms of the 0N/A * Common Development and Distribution License (the "License"). 0N/A * You may not use this file except in compliance with the License. 0N/A * language governing permissions and limitations under the License. 0N/A * When distributing Covered Code, include this CDDL HEADER in each 0N/A * If applicable, add the following below this CDDL HEADER, with the 0N/A * fields enclosed by brackets "[]" replaced with your own identifying 0N/A * information: Portions Copyright [yyyy] [name of copyright owner] 154N/A * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 0N/A * Use is subject to license terms. 92N/A * File for useful functions 154N/A * Return a string which represents a <code>CharSequence</code> in HTML. 0N/A * @param q a character sequence 92N/A * @return a string representing the character sequence in HTML 92N/A // Util class, should not be constructed 92N/A * Append a character sequence to an <code>Appendable</code> object. Escape 92N/A * special characters for HTML. 0N/A * @param q a character sequence 92N/A * @param out the object to append the character sequence to 92N/A * @exception IOException if an I/O error occurs 92N/A * Append a character sequence to a <code>StringBuilder</code> 92N/A * object. Escape special characters for HTML. This method is identical to 92N/A * <code>htmlize(CharSequence,Appendable)</code>, except that it is 92N/A * guaranteed not to throw <code>IOException</code> because it uses a 92N/A * <code>StringBuilder</code>. 92N/A * @param q a character sequence 154N/A * @param out the object to append the character sequence to 92N/A * @see #htmlize(CharSequence, Appendable) 92N/A // StringBuilder's append methods are not declared to throw 92N/A // IOException, so this should never happen. 154N/A * Append a character to a an <code>Appendable</code> object. If the 154N/A * character has special meaning in HTML, append a sequence of characters 154N/A * representing the special character. 154N/A * @param c the character to append 154N/A * @param out the object to append the character to 154N/A * @exception IOException if an I/O error occurs 0N/A * Same as {@code breadcrumbPath(urlPrefix, l, '/')}. 154N/A * @see #breadcrumbPath(String, String, char) 0N/A * Same as {@code breadcrumbPath(urlPrefix, l, sep, "", false)}. 0N/A * @see #breadcrumbPath(String, String, char, String, boolean) 0N/A * Create a breadcrumb path to allow navigation to each element of a path. 154N/A * @param urlPrefix what comes before the path in the URL 0N/A * @param l the full path from which the breadcrumb path is built 0N/A * @param sep the character that separates the path elements in {@code l} 0N/A * @param urlPostfix what comes after the path in the URL 154N/A * @param compact if {@code true}, remove {@code ..} and empty path 0N/A * elements from the path in the links 154N/A * @return HTML markup for the breadcrumb path 0N/A * Leave a breadcrumb to allow navigation to one of the parent directories. 0N/A * Write a hyperlink to the specified {@code StringBuilder}. 89N/A * @param urlPrefix what comes before the path in the URL 89N/A * @param sep the character that separates path elements 168N/A * @param urlPostfix what comes after the path in the URL 168N/A * @param compact if {@code true}, remove {@code ..} and empty path 181N/A * elements from the path in the link 89N/A * @param hyperl a string builder to which the hyperlink is written 89N/A * @param path all the elements of the full path 89N/A * @param index which path element to create a link to 168N/A // Only generate the link if the path element is non-empty. Empty 168N/A // path elements could occur if the path contains two consecutive 168N/A // separator characters, or if the path begins or ends with a path 168N/A // Add a separator between each path element, but not after the last 89N/A // one. If the original path ended with a separator, the last element 89N/A // of the path array is an empty string, which means that the final 89N/A // separator will be printed. 89N/A * Append parts of a file path to a {@code StringBuilder}. Separate each 0N/A * element in the path with "/". The path elements from index 0 up to 154N/A * index {@code lastIndex} (inclusive) are used. 0N/A * @param path array of path elements 0N/A * @param lastIndex the index of the last path element to use 0N/A * @param out the {@code StringBuilder} to which the path is appended 0N/A * @param compact if {@code true}, remove {@code ..} and empty path 0N/A * elements from the path in the link 0N/A // Copy the relevant part of the path. If compact is false, just 0N/A // copy the lastIndex first elements. If compact is true, remove empty 0N/A // path elements, and follow .. up to the parent directory. Occurrences 154N/A // of .. at the beginning of the path will be removed. 158N/A // Print the path with / between each element. No separator before 158N/A // the first element or after the last element. 0N/A * Generate a regex that matches the specified character. Escape it in 58N/A * case it is a character that has a special meaning in a regex. 58N/A * @param c the character that the regex should match 0N/A * @return a six-character string on the form <tt>\u</tt><i>hhhh</i> }
else if (l <
1048576) {
out.
write(
"<span class=\"blame\"><span class=\"l\"> ");
* Append path and date into a string in such a way that lexicographic * sorting gives the same results as a walk of the file hierarchy. Thus * null (\u0000) is used both to separate directory components and to * separate the path from the date. // Should not happen. UTF-8 must be supported by JVMs. for (
int i =
0; i < q.
length(); i++) {
* Build a string that may be converted to a Query and passed to Lucene. * All parameters may be passed as null or an empty string to indicate that * @param freetext The string from the "Full Search" text-field. This field * will be applied as it is specified. * @param defs The string from the "Definition" text-field. This field * will be searched for in the <b>defs</b> field in the lucene * index. All occurences of ":" will be replaced with "\:" * @param refs The string from the "Symbol" text-field. This field * will be searched for in the <b>refs</b> field in the lucene * index. All occurences of ":" will be replaced with "\:" * @param path The string from the "File Path" text-field. This field * will be searched for in the <b>path</b> field in the lucene * index. All occurences of ":" will be replaced with "\:" * @param hist The string from the "History" text-field. This field * will be searched for in the <b>hist</b> field in the lucene * index. All occurences of ":" will be replaced with "\:" * @return A string to be parsed by the Lucene parser.