CapabilityLoader capabilityLoader = new CapabilityLoader();
ProgressMonitor progressMonitor = new PrintStreamProgressMonitor();
Requirement<ResourceSetRequirement, ResourceSet> requirement = ServiceCapabilityFactory.createRequirement(ResourceSet.class);
ResourceSet resourceSet = capabilityLoader.loadOne(requirement, progressMonitor);
File moduleFile = new File("target/module.xlsx").getCanonicalFile();
Resource excelResource = resourceSet.createResource(URI.createFileURI(moduleFile.getAbsolutePath()));
Workbook workbook = ExcelFactory.eINSTANCE.createWorkbook();
excelResource.getContents().add(workbook);
Module module = getClass().getModule();
ModuleDescriptor descriptor = module.getDescriptor();
RowSheet rowSheet = workbook.addRowSheet(module.getName());
CellRow headerRow = rowSheet.addCellRow();
headerRow.addStringCell("Name");
headerRow.addStringCell("Modifiers");
headerRow.addStringCell("Version");
for (Requires req: descriptor.requires()) {
CellRow reqRow = rowSheet.addCellRow();
reqRow.addStringCell(req.name());
StringBuilder modifiersBuilder = new StringBuilder();
req.modifiers().forEach(m -> {
if (!modifiersBuilder.isEmpty()) {
modifiersBuilder.append(", ");
}
modifiersBuilder.append(m);
});
reqRow.addStringCell(modifiersBuilder.toString());
Optional<Version> versionOpt = req.compiledVersion();
if (versionOpt.isEmpty()) {
reqRow.addBlankCell();
} else {
Version version = versionOpt.get();
reqRow.addStringCell(version.toString());
}
}
excelResource.save(null);
CapabilityLoader capabilityLoader = new CapabilityLoader();
ProgressMonitor progressMonitor = new PrintStreamProgressMonitor();
Requirement<ResourceSetRequirement, ResourceSet> requirement = ServiceCapabilityFactory.createRequirement(ResourceSet.class);
ResourceSet resourceSet = capabilityLoader.loadOne(requirement, progressMonitor);
File moduleFile = new File("target/module-series.xlsx").getCanonicalFile();
Resource excelResource = resourceSet.createResource(URI.createFileURI(moduleFile.getAbsolutePath()));
Workbook workbook = ExcelFactory.eINSTANCE.createWorkbook();
excelResource.getContents().add(workbook);
Module module = getClass().getModule();
ModuleDescriptor descriptor = module.getDescriptor();
List<ColumnBuilder<Requires>> columnBuilders = new ArrayList<>();
columnBuilders.add(TitleAndDescriptionColumnBuilder.stringColumnBuilder(
"Name",
"Requires name",
Requires::name,
null));
columnBuilders.add(TitleAndDescriptionColumnBuilder.stringColumnBuilder(
"Modifiers",
"Requires modifiers",
req -> {
StringBuilder modifiersBuilder = new StringBuilder();
req.modifiers().forEach(m -> {
if (!modifiersBuilder.isEmpty()) {
modifiersBuilder.append(", ");
}
modifiersBuilder.append(m);
});
return modifiersBuilder.toString();
},
null));
columnBuilders.add(TitleAndDescriptionColumnBuilder.stringColumnBuilder(
"Version",
"Requires version",
req -> {
Optional<Version> versionOpt = req.compiledVersion();
if (versionOpt.isEmpty()) {
return null;
}
Version version = versionOpt.get();
return version.toString();
},
null));
Series<Requires> series = Series.of(
"Requires",
columnBuilders,
descriptor.requires(),
true);
series.generate(workbook);
excelResource.save(null);
ColumnBuilderGroup<Requires> requiresGroup = new ColumnBuilderGroup<ModuleDescriptor.Requires>(
"Requires",
"Information about requires",
columnBuilders);
Series<Requires> groupSeries = Series.of(
"Requires group",
Collections.singletonList(requiresGroup),
descriptor.requires(),
true);
groupSeries.generate(workbook);
CapabilityLoader capabilityLoader = new CapabilityLoader();
ProgressMonitor progressMonitor = new PrintStreamProgressMonitor();
Requirement<ResourceSetRequirement, ResourceSet> requirement = ServiceCapabilityFactory.createRequirement(ResourceSet.class);
ResourceSet resourceSet = capabilityLoader.loadOne(requirement, progressMonitor);
File moduleFile = new File("target/module.xlsx").getCanonicalFile();
Resource excelResource = resourceSet.getResource(URI.createFileURI(moduleFile.getAbsolutePath()), true);
for (EObject root: excelResource.getContents()) {
for (Sheet sheet: ((Workbook) root).getSheets()) {
System.out.println(sheet.getName() + " " + sheet.eClass().getName());
for (Row row: ((RowSheet) sheet).getRows()) {
System.out.println(" " + row.getNumber() + " " + row.eClass().getName());
for (Cell cell: ((CellRow) row).getCells()) {
System.out.println(" " + cell.getColumnIndex() + " " + cell.eClass().getName());
if (cell instanceof StringCell) {
System.out.println(" " + ((StringCell) cell).getValue());
}
}
}
}
}