package jeffaschenk.commons.frameworks.cnxidx.resiliency.ldap;
import jeffaschenk.commons.frameworks.cnxidx.utility.ldap.idxTimeStamp;
import java.io.*;
/**
* Java utility class to provide a wrapper for the Change Log Restore
* State File.
*
* @author jeff.schenk
* @version 4.4 $Revision
* Developed 2005
*/
public class IRRChangeLogRestoreStateFile implements IRRChangeLogRestoreServiceVersion {
// *******************************
// Common Logging Facility.
public static final String CLASSNAME = IRRChangeLogRestoreStateFile.class.getName();
// ****************************
// Runtime Object Vaiables.
private File STATEFILE = null;
private ChangeLogStatus changelogstatus = null;
/**
* IRRChangeLogRestoreStateFile Constructor class driven from
* Main or other Class Caller.
*
* @param _statefilename
* @param changelogstatus Object which provides final status of log.
*/
public IRRChangeLogRestoreStateFile(String _statefilename,
ChangeLogStatus changelogstatus) {
this.STATEFILE = new File(_statefilename);
this.changelogstatus = changelogstatus;
} // End of Constructor for IRRChangeLogRestoreStateFile.
/**
* IRRChangeLogRestoreStateFile Constructor class driven from
* Main or other Class Caller.
*
* @param STATEFILE File Object of Processed File Name.
* @param changelogstatus Object which provides final status of log.
*/
public IRRChangeLogRestoreStateFile(File STATEFILE,
ChangeLogStatus changelogstatus) {
this.STATEFILE = STATEFILE;
this.changelogstatus = changelogstatus;
} // End of Constructor for IRRChangeLogRestoreStateFile.
/**
* Persist the State File as a Processed File.
*
* @throws java.io.IOException
*/
public void persistAsProcessed()
throws IOException {
// **************************************
// Open up a Output File for IDS Schema.
BufferedWriter STATE_OUTPUT = new BufferedWriter(new FileWriter(STATEFILE));
// **************************************
// Write the Header of the File.
idxTimeStamp TSMP = new idxTimeStamp();
TSMP.enableLocalTime();
STATE_OUTPUT.write("# *****\n");
STATE_OUTPUT.write("# " + VERSION + "\n");
STATE_OUTPUT.write("# LDIF Export File Processed: " + STATEFILE.getAbsoluteFile() + "\n");
STATE_OUTPUT.write("# Process Completion Time: " + TSMP.getFTS() + ".\n");
STATE_OUTPUT.write("#\n");
// *************************************
// Write the Body with the Stats.
if (changelogstatus != null) {
STATE_OUTPUT.write(changelogstatus.toStateFileString());
}
STATE_OUTPUT.write("# *****\n");
// *************************************
// Flush and Close Output Stream.
STATE_OUTPUT.flush();
STATE_OUTPUT.close();
STATE_OUTPUT = null;
} // End of persistAsProcessed Method.
/**
* Persist the State File as a Processed File.
*
* @throws java.io.IOException
*/
public void persistAsBlocked()
throws IOException {
// **************************************
// Open up a Output File for IDS Schema.
BufferedWriter STATE_OUTPUT = new BufferedWriter(new FileWriter(STATEFILE));
// **************************************
// Write the Header of the File.
idxTimeStamp TSMP = new idxTimeStamp();
TSMP.enableLocalTime();
STATE_OUTPUT.write("# *****\n");
STATE_OUTPUT.write("# " + VERSION + "\n");
STATE_OUTPUT.write("# LDIF Export File Processed: " + changelogstatus.getLogFileName() + "\n");
STATE_OUTPUT.write("# Process Completion Time: " + TSMP.getFTS() + ".\n");
STATE_OUTPUT.write("#\n");
// *************************************
// Write the Body with the Stats.
STATE_OUTPUT.write("# All Changes within File have been Blocked.");
STATE_OUTPUT.write("# *****\n");
// *************************************
// Flush and Close Output Stream.
STATE_OUTPUT.flush();
STATE_OUTPUT.close();
STATE_OUTPUT = null;
} // End of persistAsProcessed Method.
} // End of Class IRRChangeLogRestoreStateFile