ข้ามไปยังเนื้อหาหลัก

รายงาน

รายงานสรุป

ตัวอย่างรายงานสรุป

<?xml version="1.0" encoding="UTF-8"?>
<ContentGroups>
<!-- Example of a conforming file -->
<ContentGroup>
<AdditionalInformation>
<AllowedItems>
<AllowedItem InstanceCount="3">External Hyperlinks</AllowedItem>
<AllowedItem InstanceCount="2">Metadata</AllowedItem>
</AllowedItems>
<SanitisationItems>
<SanitisationItem InstanceCount="25">Embedded File</SanitisationItem>
</SanitisationItems>
</AdditionalInformation>
<FileName>/home/glasswall/Documents/Example.doc</FileName>
<ProcessMessage>Remedies Applied</ProcessMessage>
<EngineOutcome>Managed</EngineOutcome>
<LastErrorMessage/>
</ContentGroup>
<!-- Example of a non-conforming file -->
<ContentGroup>
<AdditionalInformation>
<AllowedItems>
<AllowedItem InstanceCount="22">Metadata</AllowedItem>
</AllowedItems>
</AdditionalInformation>
<FileName>/home/glasswall/Documents/Example2.docx</FileName>
<ProcessMessage>Issues Found</ProcessMessage>
<EngineOutcome>Non-conforming</EngineOutcome>
<LastErrorMessage>End of stream 'xl/workbook.xml' not reached</LastErrorMessage>
</ContentGroup>
<!-- Example of an unsupported file type when the skip unsupported file types flag is set to true -->
<ContentGroup>
<AdditionalInformation/>
<FileName>/home/glasswall/Documents/UnsupportedFileType.cat</FileName>
<ProcessMessage/>
<EngineOutcome>Unsupported</EngineOutcome>
<LastErrorMessage>Skipping unsupported filetype</LastErrorMessage>
</ContentGroup>
<!-- Example of an unsupported file type when the skip unsupported file types flag is set to false -->
<ContentGroup>
<AdditionalInformation/>
<FileName>/home/glasswall/Documents/UnsupportedFileType.cat</FileName>
<ProcessMessage>Issues Found</ProcessMessage>
<EngineOutcome>Non-conforming</EngineOutcome>
<LastErrorMessage>Unable to determine file type</LastErrorMessage>
</ContentGroup>
</ContentGroups>

API

คอนสตรัคเตอร์

SummaryReport() throws ParserConfigurationException, DOMException
SummaryReport(boolean skipUnsupportedFileTypes) throws ParserConfigurationException, DOMException

พารามิเตอร์:

  • boolean skipUnsupportedFileTypes - ใช้ตั้งค่าแฟล็ก skipUnsupportedFileTypes หากไม่ได้ระบุแฟล็กนี้ ระบบจะตั้งค่า skip unsupported file types เป็น false.

เมธอดของอินสแตนซ์

void setSkipUnsupportedFileTypes(boolean skipUnsupportedFileTypes)

ตัวตั้งค่าสำหรับแฟล็กข้ามประเภทไฟล์ที่ไม่รองรับ

พารามิเตอร์:

  • boolean skipUnsupportedFileTypes - ใช้ตั้งค่าแฟล็กข้ามประเภทไฟล์ที่ไม่รองรับ

boolean getSkipUnsupportedFileTypes()

ตัวดึงค่าสำหรับแฟล็กข้ามประเภทไฟล์ที่ไม่รองรับ

ส่งกลับ: true หากควรข้ามประเภทไฟล์ที่ไม่รองรับ และ false ในกรณีอื่น


void addAnalysisReport(
Path inputFilePath,
int sessionStatus,
String lastErrorMessage,
String processMessage,
InputStream analysisInputStream
) throws SAXException, ParserConfigurationException, IOException

เพิ่มรายงานการวิเคราะห์ Glasswall ใหม่ไปยังรายงานสรุป

พารามิเตอร์:

  • Path inputFilePath - พาธไฟล์ของไฟล์ที่ถูกประมวลผล
  • int sessionStatus - สถานะผลลัพธ์ที่ส่งกลับจาก GW2RunSession
  • String lastErrorMessage - ข้อความแสดงข้อผิดพลาดจาก [GW2FileErrorMsg]/embedded-engine/embedded-engine-gw2fileerrormsg). หากค่านี้เป็น null หรือว่าง จะไม่ถูกรวมไว้ในรายงานสรุป
  • String processMessage - ข้อความกระบวนการจาก GW2FileSessionStatus หากค่านี้เป็น null หรือว่าง จะไม่ถูกรวมไว้ในรายงานสรุป
  • InputStream analysisInputStream - สตรีมอินพุตที่มีรายงานการวิเคราะห์ที่จะรวมไว้

void addAnalysisReport(FileSummary summary) throws SAXException, ParserConfigurationException, IOException

เพิ่มสรุปไฟล์ Glasswall ใหม่ไปยังรายงานสรุป

พารามิเตอร์:

  • FileSummary summary - ข้อมูลสรุปที่จะเพิ่มไปยังรายงานสรุป

public void generateSummaryReport(Writer writer) throws TransformerConfigurationException, TransformerException

สร้างรายงานสรุป XML จากรายงานการวิเคราะห์ที่ให้มา

พารามิเตอร์:

  • Writer writer - writer ที่จะใช้เขียนรายงานสรุปไปยังปลายทาง

public void generateSummaryReport(Writer writer, Transformer transformer) throws TransformerException

สร้างรายงานสรุป XML จากรายงานการวิเคราะห์ที่ให้มาโดยใช้ transformer ที่ระบุ

พารามิเตอร์:

  • Writer writer - writer ที่จะใช้เขียนรายงานสรุปไปยังปลายทาง
  • Transformer transformer - transformer ที่จะใช้สำหรับสร้างรายงาน XML

ตัวอย่าง API

ฟังก์ชันรายงานสรุปถูกติดตั้งใช้งานไว้ในคลาส com.glasswall.analysissummary.SummaryReport โดยเริ่มจากสร้างอินสแตนซ์ของคลาส จากนั้นเรียก addAnalysisReport สำหรับรายงานการวิเคราะห์แต่ละรายการที่จะรวมอยู่ในรายงานสรุป และสุดท้ายเรียก generateSummaryReport เพื่อสร้างรายงานสรุป ตัวอย่างแสดงอยู่ด้านล่าง:

File input_directory = new File("Input");
File output_directory = new File("Output");

output_directory.mkdirs();

SummaryReport summary_report = new SummaryReport();
summary_report.setSkipUnsupportedFileTypes(true); // Optionally set the skip unsupported file types flag

for (File file : input_directory.listFiles())
{
if (file.isDirectory())
continue;

try (Core2JavaBridge gw = new Core2JavaBridge())
{
// Create the output path for file and analysis report
String file_output_path = Paths.get(output_directory.getAbsolutePath().toString(), file.getName()).toString();
String analysis_output_path = file_output_path + ".xml";

// Run the file through the Glasswall engine
int session = gw.GW2OpenSession();
gw.GW2RegisterInputFile(session, file.getAbsolutePath());
gw.GW2RegisterAnalysisFile(session, analysis_output_path, 0);
gw.GW2RegisterOutFile(session, file_output_path);
int run_status = gw.GW2RunSession(session);

// Retrieve the error message if the file is non-conforming
String error_message = null;

if (run_status < 0)
error_message = gw.GW2FileErrorMsgString(session);

// Retrieve the session status along with the session description
FileSessionStatus session_status = gw.GW2FileSessionStatusResult(session);

// Add the analysis report to the summary report
try (FileInputStream stream = new FileInputStream(analysis_output_path))
{
summary_report.addAnalysisReport(file.toPath(), run_status, error_message, session_status.summaryDescription, stream);
}
}
catch (Exception ex)
{
System.err.println("Exception occurred: " + ex.getMessage());
}
}

// Write the summary report to `SummaryReport.xml` file
try (BufferedWriter writer = Files.newBufferedWriter(
Paths.get(output_directory.getAbsolutePath().toString(), "SummaryReport.xml"),
StandardCharsets.UTF_8,
StandardOpenOption.TRUNCATE_EXISTING,
StandardOpenOption.CREATE,
StandardOpenOption.WRITE))
{
summary_report.generateSummaryReport(writer);
}