use of org.ff4j.audit.chart.Serie in project ff4j by ff4j.
the class AbstractEventRepository method renderPieChart.
/**
* Convert hicount into pieChart.
*
* @param hitRatio
* current hist ratio
* @return
* pie chart
*/
private PieChart renderPieChart(String title, Map<String, MutableHitCount> hitRatio, List<String> colors) {
PieChart pieChart = new PieChart(title);
int idxColor = 0;
for (String key : hitRatio.keySet()) {
Serie<Integer> ps = new Serie<Integer>(key, hitRatio.get(key).get(), colors.get(idxColor));
pieChart.getSectors().add(ps);
idxColor++;
}
return pieChart;
}
use of org.ff4j.audit.chart.Serie in project ff4j by ff4j.
the class InMemoryEventRepository method getFeatureUsageHistory.
/**
* {@inheritDoc}
*/
@Override
public TimeSeriesChart getFeatureUsageHistory(EventQueryDefinition query, TimeUnit units) {
// Create the interval depending on units
TimeSeriesChart tsc = new TimeSeriesChart(query.getFrom(), query.getTo(), units);
for (String currentDay : getCandidateDays(query.getFrom(), query.getTo())) {
// There are some event this day
if (featureUsageEvents.containsKey(currentDay)) {
for (Map.Entry<String, EventSeries> entry : featureUsageEvents.get(currentDay).entrySet()) {
String currentFeatureName = entry.getKey();
// Filter feature names if required
Set<String> filteredFeatures = query.getNamesFilter();
if (filteredFeatures == null || filteredFeatures.isEmpty() || filteredFeatures.contains(currentFeatureName)) {
// Loop over events
for (Event evt : entry.getValue()) {
// Between bounds (keydate not enough)
if (isEventInInterval(evt, query.getFrom(), query.getTo())) {
// Create new serie if new feature Name
if (!tsc.getSeries().containsKey((currentFeatureName))) {
tsc.createNewSerie(currentFeatureName);
}
// Match FeatureName
Serie<Map<String, MutableHitCount>> serie = tsc.getSeries().get(currentFeatureName);
// Match SlotName
String slotName = tsc.getSdf().format(new Date(evt.getTimestamp()));
// Should be always 'true' as the tsc.getsdf().format() will get a slotName.
if (serie.getValue().containsKey(slotName)) {
// Fast Increment
serie.getValue().get(slotName).inc();
}
}
}
}
}
}
}
// Recolor series
List<String> colors = Util.generateHSVGradient("ee1100", "442299", tsc.getSeries().size());
int idxColor = 0;
for (Map.Entry<String, Serie<Map<String, MutableHitCount>>> serie : tsc.getSeries().entrySet()) {
serie.getValue().setColor(colors.get(idxColor));
idxColor++;
}
return tsc;
}
use of org.ff4j.audit.chart.Serie in project ff4j by ff4j.
the class AuditBeanTest method testPieChart.
@Test
public void testPieChart() {
PieChart bc = new PieChart("p1");
Serie<Integer> s1 = new Serie<Integer>("s1", 12);
Serie<Integer> s2 = new Serie<Integer>("s2", 14);
bc.getSectors().add(s1);
bc.getSectors().add(s2);
Assert.assertNotNull(bc.getSectors());
Assert.assertNotNull(bc.toString());
}
use of org.ff4j.audit.chart.Serie in project ff4j by ff4j.
the class AuditBeanTest method testTimeSerieChart.
@Test
public void testTimeSerieChart() {
long top = System.currentTimeMillis();
TimeSeriesChart t1 = new TimeSeriesChart(top - 100000, top + 100000, TimeUnit.MINUTES);
new TimeSeriesChart(top - 100000, top + 100000, TimeUnit.HOURS);
new TimeSeriesChart(top - 100000, top + 100000, TimeUnit.DAYS);
new TimeSeriesChart(top - 100000, top + 100000, TimeUnit.SECONDS);
t1.addEvent(new EventBuilder().name("f1").build());
t1.addEvent(new EventBuilder().name("f2").build());
Assert.assertNotNull(t1.getSdf());
Assert.assertNotNull(t1.toString());
TimeSeriesChart tsc1 = new TimeSeriesChart();
tsc1.setSdf(new SimpleDateFormat("yyyy"));
tsc1.setTimeSlots(new ArrayList<String>());
tsc1.setSeries(new HashMap<String, Serie<Map<String, MutableHitCount>>>());
Assert.assertNotNull(tsc1);
}
use of org.ff4j.audit.chart.Serie in project ff4j by ff4j.
the class AuditBeanTest method testBarChart.
@Test
public void testBarChart() {
BarChart bc = new BarChart("Title");
bc.setTitle("title2");
Assert.assertEquals("title2", bc.getTitle());
Serie<Integer> s1 = new Serie<Integer>("s1", 12);
Serie<Integer> s2 = new Serie<Integer>("s2", 14);
bc.getChartBars().add(s1);
bc.getChartBars().add(s2);
Assert.assertNotNull(bc.toString());
}
Aggregations