package jeffaschenk.commons.touchpoint.model.transitory;
import jeffaschenk.commons.system.internal.file.services.GlobalConstants;
import jeffaschenk.commons.touchpoint.model.RootElement;
import jeffaschenk.commons.util.TimeDuration;
import jeffaschenk.commons.util.TimeUtils;
import java.io.File;
/**
* Simple Transitory Task Object, which represent the
* Import Task being performed and Queued within a Thread Pool.
*
* @author jeffaschenk@gmail.com
*/
public class ImportLoadStatistic extends TaskStatistic implements GlobalConstants {
private File extractFile;
private String networkFileName;
private boolean fileViaSecureNetworkChannel = false;
private boolean performArchive = false;
private boolean fileSliced = false;
private String pipeHeader;
private boolean archived = false;
private int rowsInError = 0;
private int rowsSkippedNoID = 0;
private int rowsProcessed = 0;
private int rowsSkippedHeader = 0;
private int rowsSkipped = 0;
private int rowsReadFromFile = 0;
private int rowsSkippedDueToPendingUpdates = 0;
/**
* Default Constructor
*
* @param extractFile
* @param associatedClass
*/
public ImportLoadStatistic(File extractFile, Class<? extends RootElement> associatedClass, Long existingRowCount) {
this.setExtractFile(extractFile);
this.associatedClass = associatedClass;
this.existingRowCount = existingRowCount;
this.setStartTime(TimeUtils.now());
this.setStopTime(this.getStartTime());
}
public String getExtractFileName() {
return this.extractFile.getName();
}
public boolean isArchived() {
return archived;
}
public void setArchived(boolean archived) {
this.archived = archived;
}
public boolean isFileSliced() {
return fileSliced;
}
public void setFileSliced(boolean fileSliced) {
this.fileSliced = fileSliced;
}
public int getRowsProcessed() {
return rowsProcessed;
}
public void setRowsProcessed(int rowsProcessed) {
this.rowsProcessed = rowsProcessed;
}
public void incrementRowsProcessed() {
this.rowsProcessed++;
}
public int getRowsSkipped() {
return rowsSkipped;
}
public void setRowsSkipped(int rowsSkipped) {
this.rowsSkipped = rowsSkipped;
}
public void incrementRowsSkipped() {
this.rowsSkipped++;
}
public int getRowsInError() {
return rowsInError;
}
public void setRowsInError(int rowsInError) {
this.rowsInError = rowsInError;
}
public void incrementRowsInError() {
this.rowsInError++;
}
public int getRowsReadFromFile() {
return rowsReadFromFile;
}
public void setRowsReadFromFile(int rowsReadFromFile) {
this.rowsReadFromFile = rowsReadFromFile;
}
public void incrementRowsReadFromFile() {
this.rowsReadFromFile++;
}
public String getPipeHeader() {
return pipeHeader;
}
public void setPipeHeader(String pipeHeader) {
this.pipeHeader = pipeHeader;
}
public int getRowsSkippedNoID() {
return rowsSkippedNoID;
}
public void setRowsSkippedNoID(int rowsSkippedNoID) {
this.rowsSkippedNoID = rowsSkippedNoID;
}
public void incrementRowsSkippedNoID() {
this.rowsSkippedNoID++;
}
public int getRowsSkippedHeader() {
return rowsSkippedHeader;
}
public void setRowsSkippedHeader(int rowsSkippedHeader) {
this.rowsSkippedHeader = rowsSkippedHeader;
}
public void incrementRowsSkippedHeader() {
this.rowsSkippedHeader++;
}
public int getRowsSkippedDueToPendingUpdates() {
return rowsSkippedDueToPendingUpdates;
}
public void setRowsSkippedDueToPendingUpdates(int rowsSkippedDueToPendingUpdates) {
this.rowsSkippedDueToPendingUpdates = rowsSkippedDueToPendingUpdates;
}
public void incrementRowsSkippedDueToPendingUpdates() {
this.rowsSkippedDueToPendingUpdates++;
}
public File getExtractFile() {
return extractFile;
}
public void setExtractFile(File extractFile) {
this.extractFile = extractFile;
if ( (extractFile != null) && (extractFile.getName().contains(FILE_SLICE)) ) {
this.setFileSliced(true);
}
}
public boolean isPerformArchive() {
return performArchive;
}
public void setPerformArchive(boolean performArchive) {
this.performArchive = performArchive;
}
public boolean isFileViaSecureNetworkChannel() {
return fileViaSecureNetworkChannel;
}
public void setFileViaSecureNetworkChannel(boolean fileViaSecureNetworkChannel) {
this.fileViaSecureNetworkChannel = fileViaSecureNetworkChannel;
}
public String getNetworkFileName() {
return networkFileName;
}
public void setNetworkFileName(String networkFileName) {
this.networkFileName = networkFileName;
}
@Override
public String toString() {
return "ExtractLoadStatistic{" +
NEWLINE +"extractFile=" + ( (extractFile != null) ? extractFile.getName().toString() : "none") +
NEWLINE +", networkFileName=" + ( (networkFileName != null) ? networkFileName : "none") +
NEWLINE + ", associatedClass=" + associatedClass.getSimpleName() +
NEWLINE + ", fileViaSecureNetworkChannel=" + fileViaSecureNetworkChannel +
NEWLINE + ", processed=" + processed +
NEWLINE + ", archived=" + archived +
NEWLINE + ", sliced=" + fileSliced +
NEWLINE + ", performArchive=" + performArchive +
NEWLINE + ", done=" + done +
NEWLINE + ", saved=" + saved +
NEWLINE + ", existingRowCount=" + existingRowCount +
NEWLINE + ", rowsReadFromFile=" + rowsReadFromFile +
NEWLINE + ", rowsProcessed=" + rowsProcessed +
NEWLINE + ", rowsSkipped=" + rowsSkipped +
NEWLINE + ", rowsSkippedDueToPendingUpdates=" + rowsSkippedDueToPendingUpdates +
NEWLINE + ", rowsSkippedHeader=" + rowsSkippedHeader +
NEWLINE + ", rowsSkippedNoID=" + rowsSkippedNoID +
NEWLINE + ", rowsInError=" + rowsInError +
NEWLINE + ", fileErrors=" + fileErrors +
NEWLINE + " Duration=" + TimeDuration.getElapsedtoString(this.getDuration()) +
NEWLINE + ((errorMessages.size() > 0) ? ", errorMessages=" + errorMessages.toString() + NEWLINE + " }" : " }");
}
}