Improved PathPropertyList methods.
This commit is contained in:
parent
abb9822cb1
commit
28fe19914c
4 changed files with 248 additions and 7 deletions
|
@ -43,6 +43,7 @@ import fr.devinsy.statoolinfos.htmlize.charts.PieChart;
|
|||
import fr.devinsy.statoolinfos.htmlize.charts.PieChart.Position;
|
||||
import fr.devinsy.statoolinfos.htmlize.charts.PieChartView;
|
||||
import fr.devinsy.statoolinfos.properties.PathProperty;
|
||||
import fr.devinsy.statoolinfos.properties.PathPropertyList;
|
||||
import fr.devinsy.statoolinfos.stats.StatAgent;
|
||||
import fr.devinsy.statoolinfos.stats.country.CountryStats;
|
||||
import fr.devinsy.statoolinfos.stats.organizations.OrganizationTurnoutStats;
|
||||
|
@ -267,12 +268,12 @@ public class Htmlizer
|
|||
BarChart chart;
|
||||
|
||||
chart = new BarChart("Nombre de membres");
|
||||
for (PathProperty property : federation.getByPrefix("metrics.federation.members.count"))
|
||||
|
||||
PathPropertyList values = federation.getByYearPrefix("metrics.federation.members.count").sortByPath();
|
||||
|
||||
for (PathProperty property : values)
|
||||
{
|
||||
if (property.getLeaf().matches("\\d\\d\\d\\d"))
|
||||
{
|
||||
chart.add(property.getLeaf(), Double.parseDouble(property.getValue()), ChartColor.GREEN);
|
||||
}
|
||||
chart.add(property.getLeaf(), Double.parseDouble(property.getValue()), ChartColor.GREEN);
|
||||
}
|
||||
|
||||
result = BarChartView.build(chart);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2020 Christian Pierre MOMON <christian@momon.org>
|
||||
* Copyright (C) 2020-2021 Christian Pierre MOMON <christian@momon.org>
|
||||
*
|
||||
* This file is part of StatoolInfos, simple service statistics tool.
|
||||
*
|
||||
|
@ -49,6 +49,11 @@ public class PathProperty
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the leaf.
|
||||
*
|
||||
* @return the leaf
|
||||
*/
|
||||
public String getLeaf()
|
||||
{
|
||||
String result;
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
*
|
||||
*/
|
||||
package fr.devinsy.statoolinfos.properties;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import fr.devinsy.statoolinfos.util.CompareUtils;
|
||||
|
||||
/**
|
||||
* The Class PathPropertyComparator.
|
||||
*/
|
||||
public class PathPropertyComparator implements Comparator<PathProperty>
|
||||
{
|
||||
public enum Sorting
|
||||
{
|
||||
PATH,
|
||||
VALUE
|
||||
}
|
||||
|
||||
private Sorting sorting;
|
||||
|
||||
public PathPropertyComparator(final Sorting sorting)
|
||||
{
|
||||
//
|
||||
this.sorting = sorting;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare.
|
||||
*
|
||||
* @param alpha
|
||||
* the alpha
|
||||
* @param bravo
|
||||
* the bravo
|
||||
* @return the int
|
||||
*/
|
||||
@Override
|
||||
public int compare(final PathProperty alpha, final PathProperty bravo)
|
||||
{
|
||||
int result;
|
||||
|
||||
result = compare(alpha, bravo, this.sorting);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare.
|
||||
*
|
||||
* @param alpha
|
||||
* the alpha
|
||||
* @param bravo
|
||||
* the bravo
|
||||
* @param sorting
|
||||
* the sorting
|
||||
* @return the int
|
||||
*/
|
||||
public static int compare(final PathProperty alpha, final PathProperty bravo, final Sorting sorting)
|
||||
{
|
||||
int result;
|
||||
|
||||
if (sorting == null)
|
||||
{
|
||||
result = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (sorting)
|
||||
{
|
||||
default:
|
||||
case PATH:
|
||||
result = CompareUtils.compare(getPath(alpha), getPath(bravo));
|
||||
break;
|
||||
|
||||
case VALUE:
|
||||
result = CompareUtils.compare(getValue(alpha), getValue(bravo));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the path.
|
||||
*
|
||||
* @param source
|
||||
* the source
|
||||
* @return the path
|
||||
*/
|
||||
public static String getPath(final PathProperty source)
|
||||
{
|
||||
String result;
|
||||
|
||||
if (source == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = source.getPath();
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the value.
|
||||
*
|
||||
* @param source
|
||||
* the source
|
||||
* @return the value
|
||||
*/
|
||||
public static String getValue(final PathProperty source)
|
||||
{
|
||||
String result;
|
||||
|
||||
if (source == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = source.getValue();
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2020 Christian Pierre MOMON <christian@momon.org>
|
||||
* Copyright (C) 2020-2021 Christian Pierre MOMON <christian@momon.org>
|
||||
*
|
||||
* This file is part of StatoolInfos, simple service statistics tool.
|
||||
*
|
||||
|
@ -242,6 +242,38 @@ public class PathPropertyList extends ArrayList<PathProperty> implements PathPro
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the year leafs.
|
||||
*
|
||||
* @param prefix
|
||||
* the prefix
|
||||
* @return the year leafs
|
||||
*/
|
||||
public PathPropertyList getByYearPrefix(final String prefix)
|
||||
{
|
||||
PathPropertyList result;
|
||||
|
||||
result = new PathPropertyList();
|
||||
|
||||
if (StringUtils.isNotBlank(prefix))
|
||||
{
|
||||
String pattern;
|
||||
if (prefix.endsWith("."))
|
||||
{
|
||||
pattern = "^" + prefix + "\\d\\d\\d\\d$";
|
||||
}
|
||||
else
|
||||
{
|
||||
pattern = "^" + prefix + "\\.\\d\\d\\d\\d$";
|
||||
}
|
||||
|
||||
result = getByPattern(pattern);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the index property.
|
||||
*
|
||||
|
@ -570,6 +602,75 @@ public class PathPropertyList extends ArrayList<PathProperty> implements PathPro
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Shrink to leaf.
|
||||
*
|
||||
* @return the path property list
|
||||
*/
|
||||
public PathPropertyList shrinkToLeaf()
|
||||
{
|
||||
PathPropertyList result;
|
||||
|
||||
for (PathProperty property : this)
|
||||
{
|
||||
property.setPath(property.getLeaf());
|
||||
}
|
||||
|
||||
result = this;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort.
|
||||
*
|
||||
* @param sorting
|
||||
* the sorting
|
||||
* @return the path property list
|
||||
*/
|
||||
public PathPropertyList sort(final PathPropertyComparator.Sorting sorting)
|
||||
{
|
||||
PathPropertyList result;
|
||||
|
||||
sort(new PathPropertyComparator(sorting));
|
||||
|
||||
result = this;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort by path.
|
||||
*
|
||||
* @return the path property list
|
||||
*/
|
||||
public PathPropertyList sortByPath()
|
||||
{
|
||||
PathPropertyList result;
|
||||
|
||||
result = sort(PathPropertyComparator.Sorting.PATH);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort by value.
|
||||
*
|
||||
* @return the path property list
|
||||
*/
|
||||
public PathPropertyList sortByValue()
|
||||
{
|
||||
PathPropertyList result;
|
||||
|
||||
result = sort(PathPropertyComparator.Sorting.VALUE);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string list.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue