java.lang.Object
es.urjc.etsii.grafo.io.serializers.ResultsSerializer<S,I>
es.urjc.etsii.grafo.io.serializers.excel.ExcelSerializer<S,I>
public class ExcelSerializer<S extends Solution<S,I>,I extends Instance>
extends ResultsSerializer<S,I>
Serialize results to Excel XML format
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static enumValue types to use as hint when serializing to Excel cells. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringInstance data sheetstatic final doubleNegative infinity value to use in Excelstatic final StringSheet name where common data such as VM version, benchmark score, etc will be storedstatic final StringPivot table sheet namestatic final doublePositive infinity value to use in Excelstatic final StringRaw sheet nameFields inherited from class es.urjc.etsii.grafo.io.serializers.ResultsSerializer
referenceResultProviders -
Constructor Summary
ConstructorsConstructorDescriptionExcelSerializer(ExcelConfig serializerConfig, List<ReferenceResultProvider> referenceResultProviders, Optional<ExcelCustomizer> excelCustomizer, InstanceManager<I> instanceManager) Create an Excel serializer -
Method Summary
Modifier and TypeMethodDescriptionvoid_serializeResults(String experimentName, List<SolutionGeneratedEvent<S, I>> results, Path p) This procedure serialize the list of results to a specific format and generate the resultant file in a given pathbestResultPerInstance(Objective<?, ?, ?> objective, List<? extends SolutionGeneratedEvent<?, ?>> results, List<ReferenceResultProvider> providers, boolean maximizing) Get best result for a given instanceprotected voidfillInstanceSheet(String expName, org.apache.poi.xssf.usermodel.XSSFWorkbook excelBook) voidfillRawSheet(org.apache.poi.xssf.streaming.SXSSFSheet rawSheet, boolean maximizing, List<? extends SolutionGeneratedEvent<?, ?>> results, List<ReferenceResultProvider> referenceResultProviders) Write data to raw sheetprotected String[]voidheadRawSheet(org.apache.poi.xssf.streaming.SXSSFSheet rawSheet) protected static doublenanInfiniteFilter(boolean maximizing, double value) Transform NaNs and other special double values to valid values in Excelprotected static voidwriteCell(org.apache.poi.xssf.streaming.SXSSFCell cell, Object d, ExcelSerializer.CType type) Write value to sheet cellprotected static voidwriteCell(org.apache.poi.xssf.usermodel.XSSFCell cell, Object d, ExcelSerializer.CType type) Write value to sheet cellMethods inherited from class es.urjc.etsii.grafo.io.serializers.ResultsSerializer
getConfig, serializeResults
-
Field Details
-
RAW_SHEET
Raw sheet name- See Also:
-
PIVOT_SHEET
Pivot table sheet name- See Also:
-
OTHER_DATA_SHEET
Sheet name where common data such as VM version, benchmark score, etc will be stored- See Also:
-
INSTANCE_SHEET
Instance data sheet- See Also:
-
POSITIVE_INFINITY
public static final double POSITIVE_INFINITYPositive infinity value to use in Excel- See Also:
-
NEGATIVE_INFINITY
public static final double NEGATIVE_INFINITYNegative infinity value to use in Excel- See Also:
-
-
Constructor Details
-
ExcelSerializer
public ExcelSerializer(ExcelConfig serializerConfig, List<ReferenceResultProvider> referenceResultProviders, Optional<ExcelCustomizer> excelCustomizer, InstanceManager<I> instanceManager) Create an Excel serializer- Parameters:
serializerConfig- excel serializer configurationreferenceResultProviders- reference result providers if availableexcelCustomizer- customizer if availableinstanceManager-
-
-
Method Details
-
_serializeResults
public void _serializeResults(String experimentName, List<SolutionGeneratedEvent<S, I>> results, Path p) This procedure serialize the list of results to a specific format and generate the resultant file in a given path- Specified by:
_serializeResultsin classResultsSerializer<S extends Solution<S,I>, I extends Instance> - Parameters:
results- list of resultsp- path
-
fillInstanceSheet
protected void fillInstanceSheet(String expName, org.apache.poi.xssf.usermodel.XSSFWorkbook excelBook) -
getCommonHeaders
-
bestResultPerInstance
protected static Map<String,Double> bestResultPerInstance(Objective<?, ?, ?> objective, List<? extends SolutionGeneratedEvent<?, ?>> results, List<ReferenceResultProvider> providers, boolean maximizing) Get best result for a given instance- Parameters:
results- our resultsproviders- reference valuesmaximizing- true if this is a maximizing problem, false otherwise- Returns:
- best value known for a given instance
-
fillRawSheet
public void fillRawSheet(org.apache.poi.xssf.streaming.SXSSFSheet rawSheet, boolean maximizing, List<? extends SolutionGeneratedEvent<?, ?>> results, List<ReferenceResultProvider> referenceResultProviders) Write data to raw sheet- Parameters:
rawSheet- sheet reference where data should be written tomaximizing- true if this is a maximizing problem, false otherwiseresults- list of results to serializereferenceResultProviders- reference result providers if available
-
headRawSheet
public void headRawSheet(org.apache.poi.xssf.streaming.SXSSFSheet rawSheet) -
nanInfiniteFilter
protected static double nanInfiniteFilter(boolean maximizing, double value) Transform NaNs and other special double values to valid values in Excel- Parameters:
maximizing- true if this is a maximizing problem, false otherwisevalue- value to transform- Returns:
- transformed value
-
writeCell
protected static void writeCell(org.apache.poi.xssf.streaming.SXSSFCell cell, Object d, ExcelSerializer.CType type) Write value to sheet cell- Parameters:
cell- cell where value will be writtend- value to writetype- hints how the value should be interpreted. May or may not be honored.
-
writeCell
protected static void writeCell(org.apache.poi.xssf.usermodel.XSSFCell cell, Object d, ExcelSerializer.CType type) Write value to sheet cell- Parameters:
cell- cell where value will be writtend- value to writetype- hints how the value should be interpreted. May or may not be honored.
-