Farther in process

This commit is contained in:
Oliver Spohngellert 2016-01-29 14:58:47 -05:00
parent c43fa27c7d
commit e5739f44af

View File

@ -544,7 +544,7 @@ class ReportGenerator {
* artifact-specific logic in both getArtifactTableCoumnHeaders * artifact-specific logic in both getArtifactTableCoumnHeaders
* and ArtifactData.getRow() * and ArtifactData.getRow()
*/ */
List<String> columnHeaders = getArtifactTableColumnHeaders(type.getTypeID()); List<Cell> columnHeaders = getArtifactTableColumnHeaders(type.getTypeID(), attrTypeSet);
if (columnHeaders == null) { if (columnHeaders == null) {
// @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed. // @@@ Hack to prevent system from hanging. Better solution is to merge all attributes into a single column or analyze the artifacts to find out how many are needed.
continue; continue;
@ -1217,58 +1217,85 @@ class ReportGenerator {
* reporting on. * reporting on.
* *
* @param artifactTypeId artifact type ID * @param artifactTypeId artifact type ID
* @param types The set of types available for this artifact type
* *
* @return List<String> row titles * @return List<String> row titles
*/ */
private List<String> getArtifactTableColumnHeaders(int artifactTypeId) { private List<Cell> getArtifactTableColumnHeaders(int artifactTypeId, Set<BlackboardAttribute.Type> types) {
ArrayList<String> columnHeaders; ArrayList<Cell> columnHeaders;
BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId); BlackboardArtifact.ARTIFACT_TYPE type = BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId);
switch (type) { switch (type) {
case TSK_WEB_BOOKMARK: case TSK_WEB_BOOKMARK:
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ columnHeaders = new ArrayList<>(Arrays.asList(new Cell[]{
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), new ArtifactCell(NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_URL.getTypeID(),
ATTRIBUTE_TYPE.TSK_URL.getLabel(),
ATTRIBUTE_TYPE.TSK_URL.getDisplayName(),
ATTRIBUTE_TYPE.TSK_URL.getValueType())),
//ATTRIBUTE_TYPE.TSK_TITLE
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"),
//ATTRIBUTE_TYPE.TSK_DATETIME_CREATED
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateCreated"),
//ATTRIBUTE_TYPE.TSK_PROG_NAME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
break; break;
case TSK_WEB_COOKIE: case TSK_WEB_COOKIE:
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
//ATTRIBUTE_TYPE.TSK_URL
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
//ATTRIBUTE_TYPE.TSK_DATETIME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"),
//ATTRIBUTE_TYPE.TSK_NAME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.name"),
//ATTRIBUTE_TYPE.TSK_VALUE
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.value"),
//ATTRIBUTE_TYPE.TSK_PROG_NAME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
break; break;
case TSK_WEB_HISTORY: case TSK_WEB_HISTORY:
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
//ATTRIBUTE_TYPE.TSK_URL
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.url"),
//ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"),
//ATTRIBUTE_TYPE.TSK_REFERRER
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.referrer"),
//ATTRIBUTE_TYPE.TSK_TITLE
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.title"),
//ATTRIBUTE_TYPE.TSK_PROG_NAME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
//ATTRIBUTE_TYPE.TSK_URL_DECODED
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.urlDomainDecoded"),
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
break; break;
case TSK_WEB_DOWNLOAD: case TSK_WEB_DOWNLOAD:
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
//ATTRIBUTE_TYPE.TSK_PATH
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dest"),
//ATTRIBUTE_TYPE.TSK_URL
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.sourceUrl"),
//ATTRIBUTE_TYPE.TSK_DATETIME_ACCESSED
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateAccessed"),
//ATTRIBUTE_TYPE.TSK_PROG_NAME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.program"),
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
break; break;
case TSK_RECENT_OBJECT: case TSK_RECENT_OBJECT:
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
//ATTRIBUTE_TYPE.TSK_PATH
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path"),
//ATTRIBUTE_TYPE.TSK_DATETIME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.dateTime"),
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
break; break;
case TSK_INSTALLED_PROG: case TSK_INSTALLED_PROG:
columnHeaders = new ArrayList<>(Arrays.asList(new String[]{ columnHeaders = new ArrayList<>(Arrays.asList(new String[]{
//ATTRIBUTE_TYPE.TSK_PROG_NAME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.progName"),
//ATTRIBUTE_TYPE.TSK_DATETIME
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.instDateTime"),
NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")})); NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.srcFile")}));
break; break;
@ -1966,7 +1993,14 @@ class ReportGenerator {
return uniqueTagNames; return uniqueTagNames;
} }
private class ArtifactCell { private interface Cell {
String getColumnHeader();
BlackboardAttribute.Type getType();
}
private class ArtifactCell implements Cell {
private String columnHeader; private String columnHeader;
private BlackboardAttribute.Type attributeType; private BlackboardAttribute.Type attributeType;
@ -1981,5 +2015,34 @@ class ReportGenerator {
this.columnHeader = Objects.requireNonNull(columnHeader); this.columnHeader = Objects.requireNonNull(columnHeader);
this.attributeType = attributeType; this.attributeType = attributeType;
} }
@Override
public String getColumnHeader() {
return this.columnHeader;
}
@Override
public Type getType() {
return this.attributeType;
}
}
private class OtherCell implements Cell {
private String columnHeader;
OtherCell(String columnHeader) {
this.columnHeader = columnHeader;
}
@Override
public String getColumnHeader() {
return this.columnHeader;
}
@Override
public Type getType() {
return null;
}
} }
} }