Skip to content

Refactoriser AnalyticsCounter en plusieurs méthodes #4

Description

@andrechico999

package com.hemebiotech.analytics;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

/**
*Class who count and sort symptoms.
*/
public class AnalyticsCounter {

private ISymptomReader reader;
private ISymptomWriter writer;

/**
*constructor of AnalyticsCounter.
*
*@param reader object who read data from a file
*@param writer object who write data into a file
*/
public AnalyticsCounter(ISymptomReader reader, ISymptomWriter writer) {
this.reader = reader;
this.writer = writer;
}

public List getSymptoms() {
return reader.getSymptoms();
}

/**
*Count the numbers of symptoms's occurence.
*
*@param symptoms a list of symptoms in any order
*@return a map of symptoms, in which key = Symptoms, value = number of symptoms
*/
public Map<String, Integer> countSymptoms(List symptoms) {
Map<String, Integer> mapSymptoms = new HashMap<String, Integer>();

for (String s : symptoms) {
  if (mapSymptoms.get(s) == null) {
    mapSymptoms.put(s, 1);
  } else {
    mapSymptoms.put(s,(mapSymptoms.get(s) + 1));
  }
}

return mapSymptoms;

}

/**
*Order a map by natural order.
*
*@param symptoms a map to sort
*@return a map sort by natural order
*/
public Map<String, Integer> sortSymptoms(Map<String, Integer> symptoms) {
Map sortSymptoms = new TreeMap(symptoms);
return sortSymptoms;
}

/**
*Use the writer object to write in a file.
*
*@param symptoms the map to write
*/
public void writeSymptoms(Map<String, Integer> symptoms) {
writer.writeSymptoms(symptoms);
}
}
L ' interface ISymptomWriter est créee et implémentée par la classe WriteSymptomInDataFile

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions