public ReportResult(List<Feature> features, Configuration configuration) { buildTime = getCurrentTime(); sortingFactory = new SortingFactory(configuration.getSortingMethod()); // TODO: extract to separate class as sorting method above Feature[] arrayFeatures; if (configuration.getReducingMethods().contains(ReducingMethod.MERGE_FEATURES_BY_ID)) { Map<String, Feature> mergedFeatures = new HashMap<>(); for (Feature feature : features) { Feature mergedFeature = mergedFeatures.get(feature.getId()); if (mergedFeature == null) { mergedFeatures.put(feature.getId(), feature); } else { mergedFeatures.get(feature.getId()).addElements(feature.getElements()); } } arrayFeatures = mergedFeatures.values().toArray(new Feature[mergedFeatures.size()]); } else { arrayFeatures = features.toArray(new Feature[features.size()]); } for (int i = 0; i < arrayFeatures.length; i++) { // as this is the incex, start numeration from 1, not 0 arrayFeatures[i].setMetaData(i, configuration); processFeature(arrayFeatures[i]); } }
public ReportResult(List<Feature> features, Configuration configuration) { buildTime = getCurrentTime(); sortingFactory = new SortingFactory(configuration.getSortingMethod()); // TODO: extract to separate class as sorting method above Feature[] arrayFeatures; if (configuration.getReducingMethods().contains(ReducingMethod.MERGE_FEATURES_BY_ID)) { Map<String, Feature> mergedFeatures = new HashMap<>(); for (Feature feature : features) { Feature mergedFeature = mergedFeatures.get(feature.getId()); if (mergedFeature == null) { mergedFeatures.put(feature.getId(), feature); } else { mergedFeatures.get(feature.getId()).addElements(feature.getElements()); } } arrayFeatures = mergedFeatures.values().toArray(new Feature[mergedFeatures.size()]); } else { arrayFeatures = features.toArray(new Feature[features.size()]); } for (int i = 0; i < arrayFeatures.length; i++) { // as this is the incex, start numeration from 1, not 0 arrayFeatures[i].setMetaData(i, configuration); processFeature(arrayFeatures[i]); } }