Package Torello.JavaDoc.SyntaxHiLite
Class AbstractHashCodeHLC<NUMBER extends java.lang.Number>
- java.lang.Object
-
- Torello.JavaDoc.SyntaxHiLite.AbstractHashCodeHLC<NUMBER>
-
- All Implemented Interfaces:
HiLiteCache
public abstract class AbstractHashCodeHLC<NUMBER extends java.lang.Number> extends java.lang.Object implements HiLiteCache
AnabstractParent-Class for bothHLC32andHLC64. The bulkwork of methods and fields needed to run both of these classes can be placed in the abstract parent. In fact, there are only twoabstractimplementatio methods that subclasses need to implement in order to properly fullfill thisabstractParent-Class,
Hi-Lited Source-Code:- View Here: Torello/JavaDoc/SyntaxHiLite/AbstractHashCodeHLC.java
- Open New Browser-Tab: Torello/JavaDoc/SyntaxHiLite/AbstractHashCodeHLC.java
File Size: 11,559 Bytes Line Count: 263 '\n' Characters Found
-
-
Field Summary
Fields Modifier and Type Field Description StringcacheSaveDirectoryThis is, as the name clearly says, the Cache's Storae-DirectoryClass<NUMBER>NUMBER_CLASSThis is nothing more than a "reified" Generic Type Parameter.
-
Constructor Summary
Constructors Constructor Description AbstractHashCodeHLC(String cacheSaveDirectory, Class<NUMBER> NUMBER_CLASS)This will load the hashCodes table to memory from the file-system directory identified byString-Parameter'cacheSaveDirectory'.
-
Method Summary
Retrieving Files from the Cache & Inserting new Files into the Cache Modifier and Type Method Description voidcheckIn(String sourceCodeAsString, String hilitedCodeAsString, String codeTypeParam, boolean includeLineNumbers, byte styleNum)Store a newly highlighted source codeStringinto the cache for future retrieval.Stringget(String sourceCodeAsString, String codeTypeParam, boolean includeLineNumbers, byte styleNum)Retrieves a previously highlighted source codeStringfrom the cache if it exists.Check the Cache Size Modifier and Type Method Description inttotalNumber()Count how many files and directories are contained in thisCache.longtotalSize()Inform the user how much space (in bytes) is used by thisCache.Write Cache-State to Disk Modifier and Type Method Description voidpersistMasterHashToDisk()This will save the hash-codeTreeSet<Integer>to disk.Initialize a Directory for use as a Syntax HiLiting Cache Modifier and Type Method Description static StringinitializeDirectory(String cacheSaveDirectory, StorageWriter sw)This will initialize a cache-file in the file-system directory identified by parameterString cacheSaveDirectory.static voidmain(String[] argv)A Main-Method which invokesinitializeDirectory(String, StorageWriter)Abstract Method for Calculating the Hash-Key used in Caching Files Modifier and Type Method Description abstract NUMBERcomputeCacheKey(String codeTypeParam, boolean includeLineNumbers, byte styleNum, String sourceCodeAsString)Compute a Hash-Code for a given Source-File, and it's HiLiting Parameters
-
-
-
Field Detail
-
NUMBER_CLASS
public final java.lang.Class<NUMBER extends java.lang.Number> NUMBER_CLASS
This is nothing more than a "reified" Generic Type Parameter. No more, no less.- Code:
- Exact Field Declaration Expression:
public final Class<NUMBER> NUMBER_CLASS;
-
cacheSaveDirectory
public final java.lang.String cacheSaveDirectory
This is, as the name clearly says, the Cache's Storae-Directory- Code:
- Exact Field Declaration Expression:
public final String cacheSaveDirectory;
-
-
Constructor Detail
-
AbstractHashCodeHLC
public AbstractHashCodeHLC(java.lang.String cacheSaveDirectory, java.lang.Class<NUMBER> NUMBER_CLASS)
This will load the hashCodes table to memory from the file-system directory identified byString-Parameter'cacheSaveDirectory'. An exception shall be thrown if this file is not found, or the specified directory doesn't exist.- Parameters:
cacheSaveDirectory- This constructor presumes that this cache has been used and visited before. This directory name should point to your local-cache of theHiLite.MEServer Code hilite past-operations.- Throws:
CacheError- This error will throw if the cache has not been instantiated, or is corrupted. If the specified directory does not exist, then thisErrorshall also throw. The chain-causeThrowableshould be visible, and is included as theThrowable.getCause().
-
-
Method Detail
-
initializeDirectory
public static java.lang.String initializeDirectory (java.lang.String cacheSaveDirectory, StorageWriter sw)
This will initialize a cache-file in the file-system directory identified by parameterString cacheSaveDirectory. If the directory specified does not exist,File.mkdirs()will be invoked, thereby creating that directory. If the specified directory already exists - it's contents shall be fully wiped, meaning all files deleted.Erasing Contents: If the directory structure provided to this method is non-empty, the its entire contents shall be erased by a call toFileTransfer#deleteFilesRecursive., as per the statement below
FileTransfer.deleteFilesRecursive (FileNode.createRoot(cacheSaveDirectory).loadTree(), sw);
This method saves a brand-new (empty) Hash-Code List (a java.util.TreeSet) to disk, using Java Object Serialization. It is not actually important to know whether this Cache is going to be a 32-Bit or a 64-Bit Cache. TheTreeSetwhich is written to disk is empty. Therefore, in all actuality, what is written to disk is a "Raw-Types" TreeSet (precisely because of Java's Generic Erasure). Thus it is perfectly irrelevant what is written to disk.- Parameters:
cacheSaveDirectory- This constructor presumes that this cache has been used and visited before. This directory name should point to your local-cache ofHiLite.MEServer Code hilite past-operations.sw- This receives log-writes from the call toFileTransfer.deleteFilesRecursive(Torello.Java.FileNode, Torello.Java.FileNodeFilter, Torello.Java.FileNodeFilter, java.lang.Appendable)which clears the files currently in the cache. This parameter may be null, and if it is, output-text will be shunted.- Throws:
CacheError- This exception will be throw if there are errors deleting any old-cache files currently in the directory; or if there is any error creating the new master hash-cache file. The chain-causeThrowableshould be visible, and is included as theThrowable.getCause().- Code:
- Exact Method Body:
return TreeSetMethods.initializeDirectory(cacheSaveDirectory, sw);
-
totalSize
public long totalSize()
Description copied from interface:HiLiteCacheInform the user how much space (in bytes) is used by thisCache.- Specified by:
totalSizein interfaceHiLiteCache- Returns:
- The number of bytes being used on the file-system by this
Cache. - Code:
- Exact Method Body:
return FileNode .createRoot(this.cacheSaveDirectory) .loadTree() .getDirTotalContentsSize();
-
totalNumber
public int totalNumber()
Description copied from interface:HiLiteCacheCount how many files and directories are contained in thisCache.- Specified by:
totalNumberin interfaceHiLiteCache- Returns:
- The total number of files and sub-directories in the
Cachedirectory. - Code:
- Exact Method Body:
return FileNode .createRoot(this.cacheSaveDirectory) .loadTree() .count();
-
persistMasterHashToDisk
public void persistMasterHashToDisk() throws CacheError
Description copied from interface:HiLiteCacheThis will save the hash-codeTreeSet<Integer>to disk. The Master Hash-Code List just keeps a record of the hashcodes of everyStringthat was hilited by the Hiliter (and therefore saved inside the Cache). This method will save that JavaTreeSetof Hash-Codes to disk.- Specified by:
persistMasterHashToDiskin interfaceHiLiteCache- Throws:
CacheError- ThisErrorwill throw if there is a problem writing the master cache-hash to disk. The chain-causeThrowableshould be visible, and is included as theThrowable.getCause()- Code:
- Exact Method Body:
TreeSetMethods.persistMasterHashToDisk(this.hashCodes, this.cacheSaveDirectory);
-
get
public java.lang.String get(java.lang.String sourceCodeAsString, java.lang.String codeTypeParam, boolean includeLineNumbers, byte styleNum)
Description copied from interface:HiLiteCacheRetrieves a previously highlighted source codeStringfrom the cache if it exists. If a Cache-Miss has occurred, then this method shall return null.- Specified by:
getin interfaceHiLiteCache- Parameters:
sourceCodeAsString- The unhighlighted source code text which is used for generating a "Hash Key" into the cache.codeTypeParam- The code type identifier (e.g.,'java', 'html', 'css') used to distinguish syntax rules.includeLineNumbers- A flag indicating whether line numbers are to be included in the highlighted HTML output.styleNum- A numeric style identifier used to determine which syntax color scheme should be applied.- Returns:
- The highlighted version of the source code as a
String, ornullif not cached. - Code:
- Exact Method Body:
return CheckInOut.get( sourceCodeAsString, this.computeCacheKey (codeTypeParam, includeLineNumbers, styleNum, sourceCodeAsString), this );
-
checkIn
public void checkIn(java.lang.String sourceCodeAsString, java.lang.String hilitedCodeAsString, java.lang.String codeTypeParam, boolean includeLineNumbers, byte styleNum)
Description copied from interface:HiLiteCacheStore a newly highlighted source codeStringinto the cache for future retrieval.- Specified by:
checkInin interfaceHiLiteCache- Parameters:
sourceCodeAsString- The unhighlighted source code text which is used for generating a "Hash Key" into the cache.codeTypeParam- The code type identifier (e.g.,'java', 'html', 'css') used to distinguish syntax rules.includeLineNumbers- A flag indicating whether line numbers are to be included in the highlighted HTML output.styleNum- A numeric style identifier used to determine which syntax color scheme should be applied.- Code:
- Exact Method Body:
CheckInOut.checkIn( sourceCodeAsString, hilitedCodeAsString, this.computeCacheKey (codeTypeParam, includeLineNumbers, styleNum, sourceCodeAsString), this );
-
computeCacheKey
public abstract NUMBER computeCacheKey(java.lang.String codeTypeParam, boolean includeLineNumbers, byte styleNum, java.lang.String sourceCodeAsString)
Compute a Hash-Code for a given Source-File, and it's HiLiting Parameters- Parameters:
codeTypeParam- The code type identifier (e.g.,'java', 'html', 'css') used to distinguish syntax rules.includeLineNumbers- A flag indicating whether line numbers are to be included in the highlighted HTML output.styleNum- A numeric style identifier used to determine which syntax color scheme should be applied.sourceCodeAsString- The unhighlighted source code text which is used for generating a "Hash Key" into the cache.- Returns:
- A key which may be used for saving a file to disk.
-
main
public static void main(java.lang.String[] argv)
A Main-Method which invokesinitializeDirectory(String, StorageWriter)- Code:
- Exact Method Body:
if (argv.length != 1) { System.out.println( "argv.length != 1\n" + "argv[0] must contain the Cache-Directory Name.\n" ); System.exit(1); } initializeDirectory(argv[0], new StorageWriter());
-
-