/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* See LICENSE.txt included in this distribution for the specific
* language governing permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at LICENSE.txt.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Use is subject to license terms.
*/
/**
* Base class for all different File Analyzers
*
* An Analyzer for a filetype provides
*<ol>
* <li>the file extentions and magic numbers it analyzes</li>
* <li>a lucene document listing the fields it can support</li>
* <li>TokenStreams for each of the field it said requires tokenizing in 2</li>
* <li>cross reference in HTML format</li>
* <li>the type of file data, plain text etc.</li>
*</ol>
*
* Created on September 21, 2005
*
* @author Chandan
*/
/** the project to which this analyzer is related to */
/**
* What kind of file is this?
*/
public static enum Genre {
/** xrefed - line numbered context */
/** xrefed - summarizer context */
/** not xrefed - no context */
/** not xrefed - summarizer context from original file */
;
}
/**
* Get the type name value used to tag lucence documents.
* @return a none-null string.
*/
return typeName;
}
/**
* Get the Genre for the given type name.
* @param typeName name to check
* @return {@code null} if it doesn't match any genre, the genre otherwise.
* @see #typeName()
*/
return null;
}
return g;
}
}
return null;
}
}
/**
* Ctags instance to use for tagging.
*/
/**
* Set the ctag instance to use for tagging this repo's files.
* @param ctags instance to set.
*/
}
/**
*Set the project, to which this instance is related to.
* @param project project to set.
*/
}
/**
* Get the factory which created this analyzer.
* @return the {@code FileAnalyzerFactory} which created this analyzer
*/
return factory;
}
/**
* Get the genre, which this analyzer usually handles.
* @return the genre this analyzer handles.
* @see FileAnalyzerFactory#getGenre()
*/
}
/** Creates a new instance of FileAnalyzer
* @param factory the factory to use to obtain default settings */
hista = new HistoryAnalyzer();
}
/**
* Read the given input, analyze it and store the result into the given
* document. NOTE: This method does not close given input stream on return!
*
* @param doc where to store results.
* @param in source to read.
* @throws IOException
*/
// not used
}
/**
* Get the TokenStream for the given fieldname.
* @param fieldName filed name in question {@code path | project | hist}
* @param reader reader to use.
* @return {@code null} for unknown field names, a new corresponding
* TokenStream otherwise.
*/
return new PathTokenizer(reader);
}
return null;
}
/**
* {@inheritDoc}
*/
}
/**
* {@inheritDoc}
*/
//TODO needs refactoring to get more speed and less ram usage for indexer
}
/**
* Write out current results html formatted to the given writer.
*
* @param out to writer HTML cross-reference
* @throws java.io.IOException if an error occurs
*/
@SuppressWarnings("static-method")
}
/**
* Write out current results html formatted to the given destination.
* @param xrefDir the parent directory of the file to write.
* @param path the relative path wrt. <var>xrefDir</var> of the file to write.
* @throws IOException
*/
@SuppressWarnings("resource")
XrefWriter w = null;
try {
writeXref(w);
} finally {
}
}
}