net.icite.datastore
Class WTFBase

java.lang.Object
  extended bynet.icite.datastore.WTFBase
All Implemented Interfaces:
DatastoreBase

public class WTFBase
extends java.lang.Object
implements DatastoreBase

WTFBase is a kind-of database for processing files in WTF (Whoopdedoo Text Format). At this point, it mostly loads WTF files, and stores their data in a hashtable where they can be accessed by key. It also keeps a watch on file changes (it can watch non-WTF files too), and can reload WTF files automatically.

Version:
$Id: WTFBase.java,v 1.0 2005/04/30 17:15:00 jay Exp $
Author:
Jay Fienberg

Nested Class Summary
(package private)  class WTFBase.FileWatchDaemon
           
 
Field Summary
protected static org.apache.commons.logging.Log _logger
           
private static org.apache.commons.collections.map.HashedMap catalog
           
private static char commentChar
           
protected static java.lang.String Comparator
           
private static java.lang.String defaultCatalogKeyValue
           
private static boolean defaultMultiSectionMode
           
private static org.apache.commons.collections.map.HashedMap fileWatch
           
private static WTFBase.FileWatchDaemon fwDaemon
           
private static java.lang.Thread fwProcess
           
private static long fwSleep
           
private static java.lang.String[] keysToClearOnLoad
           
private static java.lang.String keyValueSeparators
           
private static char multiSectionChar
           
private static char sectionChar
           
private static java.util.ArrayList sourceList
           
private static java.lang.String strictKeyValueSeparators
           
private static java.lang.String whiteSpaceChars
           
 
Constructor Summary
WTFBase()
           
 
Method Summary
 void addToCatalog(java.lang.Object key, java.util.ArrayList alist)
           
 void addToCatalog(java.lang.Object key, java.util.Map map)
           
 java.lang.String catalogDump()
           
 java.lang.String fileWatchDump()
           
 java.lang.String getCanonicalSourceName(java.lang.String filecomp, java.lang.String fileDir)
           
 java.util.ArrayList getCatalogKey(org.apache.commons.collections.keyvalue.MultiKey key)
           
 java.util.ArrayList getCatalogKey(java.lang.Object key)
           
 java.util.ArrayList getCatalogKey(java.lang.String key)
           
 java.lang.String getComparator()
           
private  java.lang.String getFullFileName(java.lang.String file, java.lang.String fileDir)
           
 java.util.ArrayList getNewView(java.util.ArrayList keys)
           
 java.lang.String getSecureHash(java.lang.String data)
           
private  boolean includesPath(java.lang.String file)
           
 boolean isFileWatched(java.lang.String file)
           
private  boolean isURL(java.lang.String file)
           
 boolean isWatchedFileCurrent(java.lang.String fullFile)
           
 boolean isWatchedFileCurrent(java.lang.String file, java.lang.String fileDir)
           
 boolean isWatchedFileMissing(java.lang.String fullFile)
           
 void load(java.util.ArrayList filelist, java.lang.String defaultEncoding, java.lang.String fileDir)
           
private  void load(java.lang.String file, java.lang.String encoding)
           
 void load(java.lang.String file, java.lang.String encoding, java.lang.String fileDir)
           
private  void loader(java.io.BufferedReader reader, java.lang.String fullfile)
           
 void loadFromQueue()
           
 void runFileWatcher()
           
 void setComparator(java.lang.String comparator)
           
 void setDefaultCatalogKeyValue(java.lang.String val)
           
 void setDefaultMultiSectionMode(boolean mode)
           
 void setFileWatchTimer(int timeInMinutes)
           
 void setKeysToClearOnLoad(java.lang.String[] keys)
           
 void stopFileWatcher()
           
 void updateWatchedFile(java.lang.String file, java.lang.Long mod, boolean missing)
           
 void watchFile(java.util.ArrayList filelist, java.lang.String defaultEncoding, boolean queue)
           
 void watchFile(java.util.ArrayList filelist, java.lang.String defaultEncoding, java.lang.String fileDir, boolean queue)
           
 void watchFile(java.lang.String filename, java.lang.String encoding, boolean queue)
           
 void watchFile(java.lang.String filename, java.lang.String encoding, java.lang.String fileDir, boolean queue)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_logger

protected static org.apache.commons.logging.Log _logger

Comparator

protected static java.lang.String Comparator

sourceList

private static java.util.ArrayList sourceList

catalog

private static org.apache.commons.collections.map.HashedMap catalog

fileWatch

private static org.apache.commons.collections.map.HashedMap fileWatch

defaultCatalogKeyValue

private static java.lang.String defaultCatalogKeyValue

keysToClearOnLoad

private static java.lang.String[] keysToClearOnLoad

defaultMultiSectionMode

private static boolean defaultMultiSectionMode

fwDaemon

private static WTFBase.FileWatchDaemon fwDaemon

fwProcess

private static java.lang.Thread fwProcess

fwSleep

private static long fwSleep

strictKeyValueSeparators

private static final java.lang.String strictKeyValueSeparators
See Also:
Constant Field Values

whiteSpaceChars

private static final java.lang.String whiteSpaceChars
See Also:
Constant Field Values

commentChar

private static final char commentChar
See Also:
Constant Field Values

sectionChar

private static final char sectionChar
See Also:
Constant Field Values

multiSectionChar

private static final char multiSectionChar
See Also:
Constant Field Values

keyValueSeparators

private static final java.lang.String keyValueSeparators
See Also:
Constant Field Values
Constructor Detail

WTFBase

public WTFBase()
Method Detail

catalogDump

public java.lang.String catalogDump()
Specified by:
catalogDump in interface DatastoreBase

fileWatchDump

public java.lang.String fileWatchDump()
Specified by:
fileWatchDump in interface DatastoreBase

loader

private void loader(java.io.BufferedReader reader,
                    java.lang.String fullfile)

load

public void load(java.lang.String file,
                 java.lang.String encoding,
                 java.lang.String fileDir)
Specified by:
load in interface DatastoreBase

load

public void load(java.util.ArrayList filelist,
                 java.lang.String defaultEncoding,
                 java.lang.String fileDir)
Specified by:
load in interface DatastoreBase

load

private void load(java.lang.String file,
                  java.lang.String encoding)

setDefaultCatalogKeyValue

public void setDefaultCatalogKeyValue(java.lang.String val)
Specified by:
setDefaultCatalogKeyValue in interface DatastoreBase

setDefaultMultiSectionMode

public void setDefaultMultiSectionMode(boolean mode)
Specified by:
setDefaultMultiSectionMode in interface DatastoreBase

setKeysToClearOnLoad

public void setKeysToClearOnLoad(java.lang.String[] keys)
Specified by:
setKeysToClearOnLoad in interface DatastoreBase

addToCatalog

public void addToCatalog(java.lang.Object key,
                         java.util.Map map)
Specified by:
addToCatalog in interface DatastoreBase

addToCatalog

public void addToCatalog(java.lang.Object key,
                         java.util.ArrayList alist)
Specified by:
addToCatalog in interface DatastoreBase

getCatalogKey

public java.util.ArrayList getCatalogKey(java.lang.Object key)
Specified by:
getCatalogKey in interface DatastoreBase

getCatalogKey

public java.util.ArrayList getCatalogKey(java.lang.String key)
Specified by:
getCatalogKey in interface DatastoreBase

getCatalogKey

public java.util.ArrayList getCatalogKey(org.apache.commons.collections.keyvalue.MultiKey key)
Specified by:
getCatalogKey in interface DatastoreBase

isURL

private boolean isURL(java.lang.String file)

includesPath

private boolean includesPath(java.lang.String file)

getFullFileName

private java.lang.String getFullFileName(java.lang.String file,
                                         java.lang.String fileDir)

getCanonicalSourceName

public java.lang.String getCanonicalSourceName(java.lang.String filecomp,
                                               java.lang.String fileDir)
Specified by:
getCanonicalSourceName in interface DatastoreBase

getNewView

public java.util.ArrayList getNewView(java.util.ArrayList keys)
Specified by:
getNewView in interface DatastoreBase

watchFile

public void watchFile(java.lang.String filename,
                      java.lang.String encoding,
                      java.lang.String fileDir,
                      boolean queue)
Specified by:
watchFile in interface DatastoreBase

watchFile

public void watchFile(java.util.ArrayList filelist,
                      java.lang.String defaultEncoding,
                      java.lang.String fileDir,
                      boolean queue)
Specified by:
watchFile in interface DatastoreBase

watchFile

public void watchFile(java.lang.String filename,
                      java.lang.String encoding,
                      boolean queue)
Specified by:
watchFile in interface DatastoreBase

watchFile

public void watchFile(java.util.ArrayList filelist,
                      java.lang.String defaultEncoding,
                      boolean queue)
Specified by:
watchFile in interface DatastoreBase

isFileWatched

public boolean isFileWatched(java.lang.String file)
Specified by:
isFileWatched in interface DatastoreBase

updateWatchedFile

public void updateWatchedFile(java.lang.String file,
                              java.lang.Long mod,
                              boolean missing)
Specified by:
updateWatchedFile in interface DatastoreBase

isWatchedFileCurrent

public boolean isWatchedFileCurrent(java.lang.String file,
                                    java.lang.String fileDir)
Specified by:
isWatchedFileCurrent in interface DatastoreBase

isWatchedFileCurrent

public boolean isWatchedFileCurrent(java.lang.String fullFile)
Specified by:
isWatchedFileCurrent in interface DatastoreBase

isWatchedFileMissing

public boolean isWatchedFileMissing(java.lang.String fullFile)
Specified by:
isWatchedFileMissing in interface DatastoreBase

loadFromQueue

public void loadFromQueue()
Specified by:
loadFromQueue in interface DatastoreBase

setFileWatchTimer

public void setFileWatchTimer(int timeInMinutes)
Specified by:
setFileWatchTimer in interface DatastoreBase

runFileWatcher

public void runFileWatcher()
Specified by:
runFileWatcher in interface DatastoreBase

stopFileWatcher

public void stopFileWatcher()

getComparator

public java.lang.String getComparator()
Specified by:
getComparator in interface DatastoreBase
Returns:
Returns the comparator.

setComparator

public void setComparator(java.lang.String comparator)
Specified by:
setComparator in interface DatastoreBase
Parameters:
comparator - The comparator to set.

getSecureHash

public java.lang.String getSecureHash(java.lang.String data)
                               throws java.security.NoSuchAlgorithmException
Specified by:
getSecureHash in interface DatastoreBase
Parameters:
data - is a string to secure hash with SHA
Returns:
Returns a SHA hashed String
Throws:
java.security.NoSuchAlgorithmException