public class NARFileManager extends NARStreamHandler implements DataReceiverIfc, DataProviderIfc
| Modifier and Type | Field and Description |
|---|---|
protected DataProviderIfc |
dataProvider
Reference to the object providing data to this NAR router.
|
protected DataReceiverIfc |
dataReceiver
Reference to the object receiving data from this NAR router.
|
protected FileDataProviderIfc |
fileDataProvider
Reference to the object providing file data to this NAR router.
|
protected FileDataReceiverIfc |
fileDataReceiver
Reference to the object receiving file data from this NAR router.
|
inputShutdown, narsIn, narsOut, np, outputShutdown| Constructor and Description |
|---|
NARFileManager(DCNode dcNode)
Constructs a NARFileManager with the given node.
|
NARFileManager(DCNode dcNode,
boolean createWriter) |
NARFileManager(DCNode dcNode,
boolean createWriter,
boolean isMultiThreaded,
int threadCount,
int currThread,
boolean isOrdered) |
NARFileManager(DCNode dcNode,
boolean isMultiThreaded,
int threadCount,
int currThread) |
NARFileManager(DCNode dcNode,
boolean isMultiThreaded,
int threadCount,
int currThread,
boolean isOrdered) |
| Modifier and Type | Method and Description |
|---|---|
void |
addProcessedFileInWriterMap() |
boolean |
checkInput()
This method invokes a NarReader method which will check for an
empty input directory.
|
boolean |
cleanup()
Deletes NARs files that have been processed
|
void |
createNewCacheFile() |
void |
dataIsAvailable()
When this method is called by the DataProvider, a return call is made
to the provider's
getData() method. |
void |
fileDataIsAvailable()
Allows a FileDataProvider to indicate that some data is
available for processing
|
DCFieldContainer[] |
getBulkData()
Allows a DataReceiver to obtain the available data in a
known format.
|
java.io.File |
getCurrArchFile()
Allows a DataReceiver to obtain the currently processing .arch file
|
DCFieldContainer |
getData()
Allows a DataReceiver to obtain the available data in a
known format.
|
DCFieldContainer |
getData(java.lang.String batch)
Allows a DataReceiver to obtain the available data in a
known format.
|
DataProviderIfc |
getDataProvider()
Returns the object from which this DataReceiver is receiving data.
|
DataReceiverIfc |
getDataReceiver()
Returns the object to which this DataProvider is sending data.
|
DCFieldContainer[] |
getFileBulkData()
Allows a FileDataReceiver to obtain the available data in a
known format.
|
DCFieldContainer |
getFileData()
Allows a FileDataReceiver to obtain the available data in a
known format.
|
FileDataProviderIfc |
getFileDataProvider()
Gets the object that is holding data for this FileDataReceiver
|
FileDataReceiverIfc |
getFileDataReceiver()
Gets the object that is retrieving data from this FileDataProvider
|
FilenameGenerator |
getFilenameGenerator()
Returns the current filename generator
|
java.lang.String |
getNodeID()
This method returns the node ID.
|
java.lang.String |
getProcessedArchFile()
Allows a DataReceiver to obtain the last processed .arch file
|
java.util.List |
getProcessedFileList() |
long |
getRealNarsIn()
This must return a count of how many records this node has read in,
since it started.
|
void |
handleRejectOfFile()
To handle the remaining input files when there is reject of a file
|
boolean |
isDataAvailable()
Allows a DataReceiver to determine whether some data is
available for processing
|
boolean |
isEndOfFile()
Determines if record received is an End of file indication
|
boolean |
isFileDataAvailable()
Allows a FileDataReceiver to determine whether some file is
available for processing
|
boolean |
isStartOfFile()
Determines if the record received is start of file indication
|
void |
moveToReadyToOut(boolean initNew)
Make cache file as ready to moveToOutput()
|
java.lang.String |
openInputFile() |
void |
processData(DCFieldContainer data)
Manipulates the data provided by its DataProvider.
|
void |
processData(DCFieldContainer[] data)
Manipulates the data provided by its DataProvider.
|
boolean |
processEndOfFileData(java.lang.String transactionID)
Allows FileDataProvider to indicate end of file record
|
boolean |
processFileData(DCFieldContainer data)
Manipulates the data provided by its DataProvider
|
boolean |
processFileData(DCFieldContainer[] data)
Manipulates the set of data provided by its DataProvider
|
boolean |
processRejectFile()
Allows FileDataProvider to indicate rejection of the file
|
boolean |
processStartOfFileData(java.lang.String fileName)
Allows FileDataProvider to indicate start of file
|
DCFieldContainer[] |
readBulkData()
Returns a set of DCFieldContainer objects from the data stream.
|
DCFieldContainer |
readData()
Return a DCFieldContainer object from the data stream.
|
NAR |
readNAR()
Return a NAR from the data stream.
|
NAR |
readNAR(java.lang.String batch)
Return a NAR from the data stream.
|
NAR[] |
readNARs()
Return an array of NARs from the data stream.
|
NAR[] |
readNARsFromFile()
Return an array of NARs from the data stream.
|
boolean |
rejectFile()
Indicates data provider to stop reading from the input file and reject it
|
void |
removeProcessedFile(java.io.File currArchFile)
Allows a DataReceiver to remove .arch file once processed
currArchFile - processed .arch file
|
void |
setDataProvider(DataProviderIfc provider)
Sets the object from which this DataReceiver will obtain
its data.
|
void |
setDataReceiver(DataReceiverIfc receiver)
Sets the object to which this DataProvider will send
its data.
|
void |
setFileDataProvider(FileDataProviderIfc provider)
Sets the object from which this FileDataReceiver will obtain
its data.
|
void |
setFileDataReceiver(FileDataReceiverIfc receiver)
Sets the object to which this FileDataProvider will send
its data.
|
void |
setFilenameGenerator(FilenameGenerator filenameGen)
Sets a new FilenameGenerator
|
void |
setProcessedArchFile(java.lang.String processedArchFile)
Sets the processed .arch file absolute path
|
void |
setTransactionID(java.lang.String tID) |
void |
shutdown()
This method invokes the shutdown method of each NarWriter object.
|
void |
shutdownInput()
For this implementation of the StreamHandler, simply set the flag
that will prevent the input methods from allowing any more data into
the node.
|
void |
shutdownOutput()
For this implementation of the StreamHandler, there is no reason to
stop the output stream without first stopping the input stream.
|
void |
signalBatchCompletion(java.lang.String batch)
Allows a DataReceiver to know that the nars under the specified batch are
completed and handed over to the Data receiver
|
boolean |
storeNAR(NAR record)
Writes a single NAR to the appropriate cache file.
|
boolean |
storeNARs(NAR[] records)
Writes multiple NARs to the appropriate cache file
|
boolean |
validOIMinorType()
Allows a DataReceiver to check if Minor Type supported for disaster
recovery
|
getPerformanceMetrics, writeData, writeDataprotected DataProviderIfc dataProvider
protected DataReceiverIfc dataReceiver
protected FileDataProviderIfc fileDataProvider
protected FileDataReceiverIfc fileDataReceiver
public NARFileManager(DCNode dcNode)
dcNode - Node to managepublic NARFileManager(DCNode dcNode, boolean isMultiThreaded, int threadCount, int currThread)
public NARFileManager(DCNode dcNode, boolean isMultiThreaded, int threadCount, int currThread, boolean isOrdered)
public NARFileManager(DCNode dcNode, boolean createWriter)
public NARFileManager(DCNode dcNode, boolean createWriter, boolean isMultiThreaded, int threadCount, int currThread, boolean isOrdered)
public void shutdown()
shutdown in interface DCStreamHandlershutdown in class NARStreamHandlerpublic boolean storeNARs(NAR[] records)
storeNARs in class NARStreamHandlertrue, if the write was successful.public boolean storeNAR(NAR record)
storeNAR in class NARStreamHandlertrue, if the write was successful.public NAR readNAR()
readNAR in class NARStreamHandlerpublic NAR readNAR(java.lang.String batch)
public NAR[] readNARs()
readNARs in class NARStreamHandlerpublic NAR[] readNARsFromFile() throws java.lang.Exception
java.lang.Exceptionpublic boolean checkInput()
public java.lang.String getNodeID()
public final FilenameGenerator getFilenameGenerator()
public final void setFilenameGenerator(FilenameGenerator filenameGen)
public DCFieldContainer readData()
readData in interface DCStreamHandlerreadData in class NARStreamHandlerpublic DCFieldContainer[] readBulkData()
readBulkData in interface DCStreamHandlerpublic void shutdownInput()
shutdownInput in interface DCStreamHandlershutdownInput in class NARStreamHandlerpublic boolean cleanup()
NARStreamHandlercleanup in interface DCStreamHandlercleanup in class NARStreamHandlerpublic void shutdownOutput()
shutdownOutput in interface DCStreamHandlershutdownOutput in class NARStreamHandlerpublic boolean isDataAvailable()
isDataAvailable in interface DataProviderIfctrue, if data is availablepublic DCFieldContainer getData()
getData in interface DataProviderIfcpublic DCFieldContainer getData(java.lang.String batch)
getData in interface DataProviderIfcpublic DCFieldContainer[] getBulkData()
getBulkData in interface DataProviderIfcpublic void setDataReceiver(DataReceiverIfc receiver)
setDataReceiver in interface DataProviderIfcreceiver - Object which will receive data from this providerpublic DataReceiverIfc getDataReceiver()
getDataReceiver in interface DataProviderIfcpublic void dataIsAvailable()
getData() method. The resulting
DCFieldContainer is then passed to this receiver's
processData() method.dataIsAvailable in interface DataReceiverIfcpublic void processData(DCFieldContainer data) throws NodeProcessingException
processData in interface DataReceiverIfcdata - The DCFieldContainer (actually a NAR) received
from the DataProviderNodeProcessingExceptionpublic void processData(DCFieldContainer[] data) throws NodeProcessingException
processData in interface DataReceiverIfcdata - The DCFieldContainer array (actually a set of NARs)
received from the DataProviderNodeProcessingExceptionpublic void setDataProvider(DataProviderIfc provider)
setDataProvider in interface DataReceiverIfcprovider - DataProvider of this receiverpublic DataProviderIfc getDataProvider()
getDataProvider in interface DataReceiverIfcpublic long getRealNarsIn()
NARStreamHandlergetRealNarsIn in class NARStreamHandlerpublic void moveToReadyToOut(boolean initNew)
DCStreamHandlermoveToReadyToOut in interface DCStreamHandlerpublic void createNewCacheFile()
createNewCacheFile in interface DCStreamHandlerpublic boolean isFileDataAvailable()
throws java.lang.Exception
FileDataProviderIfcisFileDataAvailable in interface FileDataProviderIfctrue, if data is availablejava.lang.Exceptionpublic boolean isEndOfFile()
throws java.lang.Exception
FileDataProviderIfcisEndOfFile in interface FileDataProviderIfctrue, if data is availablejava.lang.Exceptionpublic boolean isStartOfFile()
throws java.lang.Exception
FileDataProviderIfcisStartOfFile in interface FileDataProviderIfcjava.lang.Exceptionpublic DCFieldContainer getFileData() throws java.lang.Exception, FileRejectException, EndOfFileException
FileDataProviderIfcgetFileData in interface FileDataProviderIfcjava.lang.ExceptionFileRejectExceptionEndOfFileExceptionpublic DCFieldContainer[] getFileBulkData()
FileDataProviderIfcgetFileBulkData in interface FileDataProviderIfcpublic void setFileDataReceiver(FileDataReceiverIfc receiver)
FileDataProviderIfcsetFileDataReceiver in interface FileDataProviderIfcreceiver - Object which will obtain data from this
FileDataProviderpublic FileDataReceiverIfc getFileDataReceiver()
FileDataProviderIfcgetFileDataReceiver in interface FileDataProviderIfcpublic void fileDataIsAvailable()
FileDataReceiverIfcfileDataIsAvailable in interface FileDataReceiverIfcpublic boolean processStartOfFileData(java.lang.String fileName)
throws NodeProcessingException
FileDataReceiverIfcprocessStartOfFileData in interface FileDataReceiverIfctrue, if data is availableNodeProcessingExceptionpublic boolean processFileData(DCFieldContainer data) throws NodeProcessingException
FileDataReceiverIfcprocessFileData in interface FileDataReceiverIfctrue, if data is processed successfullyNodeProcessingExceptionpublic boolean processFileData(DCFieldContainer[] data) throws NodeProcessingException
FileDataReceiverIfcprocessFileData in interface FileDataReceiverIfctrue, if data is processed successfullyNodeProcessingExceptionpublic boolean processEndOfFileData(java.lang.String transactionID)
throws NodeProcessingException
FileDataReceiverIfcprocessEndOfFileData in interface FileDataReceiverIfctrue , if processed successfullyNodeProcessingExceptionpublic boolean processRejectFile()
throws NodeProcessingException
FileDataReceiverIfcprocessRejectFile in interface FileDataReceiverIfctrue , if processed successfullyNodeProcessingExceptionpublic void setFileDataProvider(FileDataProviderIfc provider)
FileDataReceiverIfcsetFileDataProvider in interface FileDataReceiverIfcprovider - Object which has data that needs to be
retrieved by this DataReceiverpublic FileDataProviderIfc getFileDataProvider()
FileDataReceiverIfcgetFileDataProvider in interface FileDataReceiverIfcpublic boolean rejectFile()
throws java.lang.Exception
FileDataProviderIfcrejectFile in interface FileDataProviderIfc true for successful rejection of input filejava.lang.Exceptionpublic java.lang.String openInputFile()
throws java.lang.Exception
openInputFile in interface FileDataProviderIfcjava.lang.Exceptionpublic void handleRejectOfFile()
FileDataProviderIfchandleRejectOfFile in interface FileDataProviderIfcpublic void setTransactionID(java.lang.String tID)
setTransactionID in interface FileDataReceiverIfcpublic void signalBatchCompletion(java.lang.String batch)
DataProviderIfcsignalBatchCompletion in interface DataProviderIfcpublic void removeProcessedFile(java.io.File currArchFile)
DataProviderIfcremoveProcessedFile in interface DataProviderIfcpublic java.io.File getCurrArchFile()
DataProviderIfcgetCurrArchFile in interface DataProviderIfcpublic java.util.List getProcessedFileList()
public java.lang.String getProcessedArchFile()
DataProviderIfcgetProcessedArchFile in interface DataProviderIfcpublic void setProcessedArchFile(java.lang.String processedArchFile)
DataProviderIfcsetProcessedArchFile in interface DataProviderIfcprocessedArchFile - absolute path of processed .arch filepublic boolean validOIMinorType()
DataProviderIfcvalidOIMinorType in interface DataProviderIfcpublic void addProcessedFileInWriterMap()