Ulat
Buod na ulat
Halimbawa ng buod na ulat
<?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
Mga Constructor
SummaryReport() throws ParserConfigurationException, DOMException
SummaryReport(boolean skipUnsupportedFileTypes) throws ParserConfigurationException, DOMException
Mga Parameter:
boolean skipUnsupportedFileTypes- Itinatakda nito ang flag na skipUnsupportedFileTypes. Kung hindi tinukoy ang flag na ito, ang skip unsupported file types ay itatakda safalse.
Mga instance method
void setSkipUnsupportedFileTypes(boolean skipUnsupportedFileTypes)
Setter para sa flag na skip unsupported file types.
Mga Parameter:
boolean skipUnsupportedFileTypes- Itinatakda nito ang flag na skip unsupported file types.
boolean getSkipUnsupportedFileTypes()
Getter para sa flag na skip unsupported file types.
Returns:
true kung dapat laktawan ang mga unsupported file type, at false kung hindi.
void addAnalysisReport(
Path inputFilePath,
int sessionStatus,
String lastErrorMessage,
String processMessage,
InputStream analysisInputStream
) throws SAXException, ParserConfigurationException, IOException
Magdagdag ng bagong Glasswall analysis report sa summary report.
Mga Parameter:
Path inputFilePath- Ang file path ng file na naproseso.int sessionStatus- Ang return status mula sa GW2RunSession.String lastErrorMessage- Ang mensahe ng error mula sa [GW2FileErrorMsg]/embedded-engine/embedded-engine-gw2fileerrormsg). Kung ito ay null o walang laman, hindi ito isasama sa summary report.String processMessage- Ang mensahe ng proseso mula sa GW2FileSessionStatus. Kung ito ay null o walang laman, hindi ito isasama sa summary report.InputStream analysisInputStream- Input stream na naglalaman ng analysis report na isasama.
void addAnalysisReport(FileSummary summary) throws SAXException, ParserConfigurationException, IOException
Magdagdag ng bagong Glasswall file summary sa summary report.
Mga Parameter:
FileSummary summary- Ang impormasyon ng buod na idaragdag sa summary report.
public void generateSummaryReport(Writer writer) throws TransformerConfigurationException, TransformerException
Bumuo ng XML summary report mula sa mga ibinigay na analysis report.
Mga Parameter:
Writer writer- Isang writer kung saan isusulat ang summary report.
public void generateSummaryReport(Writer writer, Transformer transformer) throws TransformerException
Bumuo ng XML summary report mula sa mga ibinigay na analysis report gamit ang tinukoy na transformer.
Mga Parameter:
Writer writer- Isang writer kung saan isusulat ang summary report.Transformer transformer- Ang transformer na gagamitin para sa pagbuo ng XML report.
Halimbawa ng API
Ang functionality ng summary report ay ipinatupad sa class na com.glasswall.analysissummary.SummaryReport. Una, gumagawa ng instance ng class, pagkatapos ay tinatawag ang addAnalysisReport para sa bawat analysis report na isasama sa summary report, at pagkatapos ay tinatawag ang generateSummaryReport sa huli upang buuin ang summary report. Makikita ang isang halimbawa sa ibaba:
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);
}