From 2e4b007e2d6760a873dcc5d3054297f2b02ce55d Mon Sep 17 00:00:00 2001 From: mtiessler Date: Thu, 13 Jun 2024 11:50:41 +0200 Subject: [PATCH] implementing distinct & total features retrieval for evverything and apps --- .../impl/InductiveKnowledgeServiceImpl.java | 102 +++++++++++++++--- 1 file changed, 88 insertions(+), 14 deletions(-) diff --git a/src/main/java/upc/edu/gessi/repo/service/impl/InductiveKnowledgeServiceImpl.java b/src/main/java/upc/edu/gessi/repo/service/impl/InductiveKnowledgeServiceImpl.java index 14c8017..e39a871 100644 --- a/src/main/java/upc/edu/gessi/repo/service/impl/InductiveKnowledgeServiceImpl.java +++ b/src/main/java/upc/edu/gessi/repo/service/impl/InductiveKnowledgeServiceImpl.java @@ -104,6 +104,21 @@ private void insertTotalFeatures(Workbook workbook) { } } + private void insertDistinctFeatures(final Workbook workbook) { + logger.info("Obtaining #distinct_features"); + Sheet distinctFeaturesSheet = createWorkbookSheet(workbook, "Distinct Features"); + generateDistinctFeaturesHeader(workbook, distinctFeaturesSheet); + List distinctFeatures = getAllDistinctFeatures(); + Integer rowIndex = 1; + for (String distinctFeature : distinctFeatures) { + ArrayList featureData = new ArrayList<>(); + featureData.add(distinctFeature); + insertRowInSheet(distinctFeaturesSheet, featureData, rowIndex); + rowIndex++; + } + } + + private void generateTotalFeaturesHeader(Workbook workbook, Sheet totalFeaturesSheet) { List totalFeaturesTitles = new ArrayList<>(); totalFeaturesTitles.add("Feature Name"); @@ -114,42 +129,101 @@ private void generateTotalFeaturesHeader(Workbook workbook, Sheet totalFeaturesS totalFeaturesTitles); } - + private void generateDistinctFeaturesHeader(Workbook workbook, Sheet distinctFeaturesSheet) { + List totalFeaturesTitles = new ArrayList<>(); + totalFeaturesTitles.add("Feature Name"); + insertHeaderRowInSheet(distinctFeaturesSheet, + generateTitleCellStyle(workbook), + generateTitleArial16Font(workbook), + totalFeaturesTitles); + } private Map getTotalFeatures() { return new HashMap<>(); } - private void insertDistinctFeatures(final Workbook workbook) { - logger.info("Obtaining #distinct_features"); + + private List getAllDistinctFeatures() { + return new ArrayList<>(); } private void insertAllApplicationsStatistics(final Workbook workbook) { - getAllApplicationIdentifiers(); - List applicationIdentifiers = new ArrayList<>(); + List applicationIdentifiers = getAllApplicationIdentifiers(); applicationIdentifiers.forEach(applicationIdentifier -> { - getApplicationTotalFeatures(); - getApplicationDistinctFeatures(); + insertTotalApplicationFeatures(workbook, applicationIdentifier); + insertDistinctApplicationFeatures(workbook, applicationIdentifier); }); } - private void getAllApplicationIdentifiers() { + private List getAllApplicationIdentifiers() { logger.info("Obtaining all application identifiers"); + return new ArrayList<>(); } - private void getApplicationTotalFeatures() { - String app_identifier = ""; - logger.info("Obtaining #total_features for {}", app_identifier); + private void insertTotalApplicationFeatures(final Workbook workbook, final String applicationIdentifier) { + logger.info("Obtaining #total_features for {}", applicationIdentifier); + Sheet totalApplicationFeaturesSheet = workbook.createSheet(applicationIdentifier + " Total Features"); + generateTotalApplicationFeaturesHeader(workbook, totalApplicationFeaturesSheet); + Map totalApplicationFeatures = getTotalApplicationFeatures(applicationIdentifier); + Integer rowIndex = 1; + for (Map.Entry feature : totalApplicationFeatures.entrySet()) { + String featureName = feature.getKey(); + Integer featureOccurrences = feature.getValue(); + ArrayList featureData = new ArrayList<>(); + featureData.add(featureName); + featureData.add(String.valueOf(featureOccurrences)); + insertRowInSheet(totalApplicationFeaturesSheet, featureData, rowIndex); + rowIndex++; + } + } + + private void generateTotalApplicationFeaturesHeader(final Workbook workbook, final Sheet totalFeaturesSheet) { + List totalApplicationFeaturesTitles = new ArrayList<>(); + totalApplicationFeaturesTitles.add("Feature Name"); + totalApplicationFeaturesTitles.add("Feature Occurrences"); + insertHeaderRowInSheet( + totalFeaturesSheet, + generateTitleCellStyle(workbook), + generateTitleArial16Font(workbook), + totalApplicationFeaturesTitles); + } + + private void insertDistinctApplicationFeatures(final Workbook workbook, final String applicationIdentifier) { + logger.info("Obtaining #distinct_features for {}", applicationIdentifier); + Sheet distinctApplicationFeaturesSheet = workbook.createSheet(applicationIdentifier + "Distinct Features"); + generateDistinctApplicationFeaturesHeader(workbook, distinctApplicationFeaturesSheet); + List distinctApplicationFeatures = getAllDistinctApplicationFeatures(applicationIdentifier); + Integer rowIndex = 1; + for (String distinctFeature : distinctApplicationFeatures) { + ArrayList featureData = new ArrayList<>(); + featureData.add(distinctFeature); + insertRowInSheet(distinctApplicationFeaturesSheet, featureData, rowIndex); + rowIndex++; + } } - private void getApplicationDistinctFeatures() { - String app_identifier = ""; - logger.info("Obtaining #distinct_features for {}", app_identifier); + + private void generateDistinctApplicationFeaturesHeader(final Workbook workbook, final Sheet totalFeaturesSheet) { + List distinctApplicationFeaturesTitles = new ArrayList<>(); + distinctApplicationFeaturesTitles.add("Feature Name"); + insertHeaderRowInSheet( + totalFeaturesSheet, + generateTitleCellStyle(workbook), + generateTitleArial16Font(workbook), + distinctApplicationFeaturesTitles); } private void insertAllDocumentTypesStatistics(final Workbook workbook) { } + private List getAllDistinctApplicationFeatures(String appIdentifier) { + return new ArrayList<>(); + } + + private Map getTotalApplicationFeatures(String appIdentifier) { + return new HashMap<>(); + } + private void getAllDocumentTypes() { logger.info("Obtaining all document types"); logger.info("Obtained the following document types");