Compare commits
10 commits
a1833ddd0b
...
a414ba7956
Author | SHA1 | Date | |
---|---|---|---|
a414ba7956 | |||
7b77a0ddf6 | |||
edc60840d0 | |||
fbf6e50b49 | |||
4d6e592204 | |||
e034f955ad | |||
fa053bebad | |||
371d199ee9 | |||
b8433e84eb | |||
62f1b7b92f |
12 changed files with 397 additions and 32 deletions
|
@ -137,6 +137,7 @@ public class PropertyChecker
|
|||
this.organizationRules.add("organization.geolocation.latitude", DECIMAL_DEGREE, PropertyMode.OPTIONAL);
|
||||
this.organizationRules.add("organization.geolocation.longitude", DECIMAL_DEGREE, PropertyMode.OPTIONAL);
|
||||
this.organizationRules.add("organization.geolocation.address", STRING, PropertyMode.OPTIONAL);
|
||||
this.organizationRules.add("organization.type", "^(ASSOCIATION|INFORMAL|COOPERATIVE|MICROCOMPANY|COMPANY|INDIVIDUAL|OTHER)$", PropertyMode.MANDATORY);
|
||||
|
||||
this.organizationRules.add(SUBS, URL, PropertyMode.OPTIONAL);
|
||||
this.organizationRules.add(METRICS_NAME, STRING, PropertyMode.OPTIONAL);
|
||||
|
@ -186,6 +187,7 @@ public class PropertyChecker
|
|||
this.serviceRules.add("host.server.distribution", STRING, PropertyMode.MANDATORY);
|
||||
this.serviceRules.add("host.server.type", "^(NANO|PHYSICAL|VIRTUAL|SHARED|CLOUD)$", PropertyMode.MANDATORY);
|
||||
this.serviceRules.add("host.provider.type", "^(HOME|HOSTEDBAY|HOSTEDSERVER|OUTSOURCED)$", PropertyMode.MANDATORY);
|
||||
this.serviceRules.add("host.provider.hypervisor", STRING, PropertyMode.OPTIONAL);
|
||||
this.serviceRules.add("host.country.name", STRING, PropertyMode.WISHED);
|
||||
this.serviceRules.add("host.country.code", COUNTRY_CODE, PropertyMode.MANDATORY);
|
||||
|
||||
|
|
|
@ -43,9 +43,6 @@ public class Organization extends PathPropertyList
|
|||
{
|
||||
private static final long serialVersionUID = -2709210934548224213L;
|
||||
|
||||
/**
|
||||
* The Enum Status.
|
||||
*/
|
||||
public enum Status
|
||||
{
|
||||
ACTIVE,
|
||||
|
@ -53,6 +50,17 @@ public class Organization extends PathPropertyList
|
|||
AWAY
|
||||
}
|
||||
|
||||
public enum Type
|
||||
{
|
||||
ASSOCIATION,
|
||||
COMPANY,
|
||||
COOPERATIVE,
|
||||
INDIVIDUAL,
|
||||
INFORMAL,
|
||||
MICROCOMPANY,
|
||||
OTHER
|
||||
}
|
||||
|
||||
private Federation federation;
|
||||
private Services services;
|
||||
private File inputFile;
|
||||
|
@ -813,6 +821,49 @@ public class Organization extends PathPropertyList
|
|||
return result;
|
||||
}
|
||||
|
||||
public Type getType()
|
||||
{
|
||||
Type result;
|
||||
|
||||
String value = get("organization.type");
|
||||
|
||||
if (StringUtils.isBlank(value))
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else if (StringUtils.equalsIgnoreCase(value, "ASSOCIATION"))
|
||||
{
|
||||
result = Type.ASSOCIATION;
|
||||
}
|
||||
else if (StringUtils.equalsIgnoreCase(value, "COOPERATIVE"))
|
||||
{
|
||||
result = Type.COOPERATIVE;
|
||||
}
|
||||
else if (StringUtils.equalsIgnoreCase(value, "MICROCOMPANY"))
|
||||
{
|
||||
result = Type.MICROCOMPANY;
|
||||
}
|
||||
else if (StringUtils.equalsIgnoreCase(value, "COMPANY"))
|
||||
{
|
||||
result = Type.COMPANY;
|
||||
}
|
||||
else if (StringUtils.equalsIgnoreCase(value, "INDIVIDUAL"))
|
||||
{
|
||||
result = Type.INDIVIDUAL;
|
||||
}
|
||||
else if (StringUtils.equalsIgnoreCase(value, "OTHER"))
|
||||
{
|
||||
result = Type.OTHER;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the URL all.
|
||||
*
|
||||
|
|
|
@ -275,6 +275,21 @@ public class Service extends PathPropertyList
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the host provider hypervisor.
|
||||
*
|
||||
* @return the host provider hypervisor
|
||||
*/
|
||||
public String getHostProviderHypervisor()
|
||||
{
|
||||
String result;
|
||||
|
||||
result = get("host.provider.hypervisor");
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the host provider type.
|
||||
*
|
||||
|
|
|
@ -60,6 +60,7 @@ import fr.devinsy.statoolinfos.stats.categories.CategoryStat;
|
|||
import fr.devinsy.statoolinfos.stats.categories.CategoryStats;
|
||||
import fr.devinsy.statoolinfos.stats.country.CountryStats;
|
||||
import fr.devinsy.statoolinfos.stats.organizations.OrganizationTurnoutStats;
|
||||
import fr.devinsy.statoolinfos.stats.organizations.OrganizationTypeStats;
|
||||
import fr.devinsy.statoolinfos.stats.services.HostProviderTypeStats;
|
||||
import fr.devinsy.statoolinfos.stats.services.HostServerTypeStats;
|
||||
import fr.devinsy.statoolinfos.stats.services.RegistrationStats;
|
||||
|
@ -219,7 +220,70 @@ public class ChartHtmlizer
|
|||
pie.setLegendPosition(Position.RIGHT);
|
||||
|
||||
int index = 0;
|
||||
while ((index < list.size() && (index < 9)))
|
||||
while ((index < list.size() && (index < 8)))
|
||||
{
|
||||
ChartColor color = colors.get(index);
|
||||
StringCounter counter = list.get(index);
|
||||
pie.add(counter.getString(), counter.getCounter(), color);
|
||||
|
||||
index += 1;
|
||||
}
|
||||
|
||||
int others = 0;
|
||||
while (index < list.size())
|
||||
{
|
||||
StringCounter counter = list.get(index);
|
||||
others += counter.getCounter();
|
||||
|
||||
index += 1;
|
||||
}
|
||||
pie.add("Autres", others, ChartColor.GREY);
|
||||
pie.add("Inconnus", unknowns, ChartColor.BLUE);
|
||||
|
||||
result = DoughnutChartView.build(pie);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Htmlize host provider hypervisor chart.
|
||||
*
|
||||
* @param services
|
||||
* the services
|
||||
* @return the string
|
||||
* @throws StatoolInfosException
|
||||
* the statool infos exception
|
||||
*/
|
||||
public static String htmlizeHostProviderHypervisorChart(final Services services) throws StatoolInfosException
|
||||
{
|
||||
String result;
|
||||
|
||||
ChartColors colors = ChartColor.valueList();
|
||||
colors.remove(ChartColor.BLUE);
|
||||
|
||||
StringCounters counters = new StringCounters();
|
||||
long unknowns = 0;
|
||||
for (Service service : services)
|
||||
{
|
||||
String hypervisor = service.getHostProviderHypervisor();
|
||||
if (StringUtils.isBlank(hypervisor))
|
||||
{
|
||||
unknowns += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
counters.inc(StringUtils.capitalize(hypervisor.toLowerCase()));
|
||||
}
|
||||
}
|
||||
|
||||
StringCounterList list = counters.toList().sortByCounter().reverse();
|
||||
|
||||
PieChart pie = new PieChart("Distributions des hyperviseurs");
|
||||
pie.setLegendPosition(Position.RIGHT);
|
||||
|
||||
int index = 0;
|
||||
while ((index < list.size() && (index < 7)))
|
||||
{
|
||||
ChartColor color = colors.get(index);
|
||||
StringCounter counter = list.get(index);
|
||||
|
@ -913,19 +977,19 @@ public class ChartHtmlizer
|
|||
BarChart chart = new BarChart("Entrées/Sorties");
|
||||
// chart.setStacked(true);
|
||||
|
||||
chart.addDataset("Sorties");
|
||||
PathPropertyList values = federation.getByYearPrefix("metrics.members.out").sortByPath();
|
||||
for (PathProperty property : values)
|
||||
{
|
||||
chart.add(0, Double.parseDouble(property.getValue()), ChartColor.RED);
|
||||
}
|
||||
|
||||
chart.addDataset("Entrées");
|
||||
PathPropertyList values = federation.getByYearPrefix("metrics.members.in").sortByPath();
|
||||
values = federation.getByYearPrefix("metrics.members.in").sortByPath();
|
||||
for (PathProperty property : values)
|
||||
{
|
||||
chart.getLabels().add(property.getLeaf());
|
||||
chart.add(0, Double.parseDouble(property.getValue()), ChartColor.GREEN);
|
||||
}
|
||||
|
||||
chart.addDataset("Sorties");
|
||||
values = federation.getByYearPrefix("metrics.members.out").sortByPath();
|
||||
for (PathProperty property : values)
|
||||
{
|
||||
chart.add(1, Double.parseDouble(property.getValue()), ChartColor.RED);
|
||||
chart.add(1, Double.parseDouble(property.getValue()), ChartColor.GREEN);
|
||||
}
|
||||
|
||||
result = BarChartView.build(chart);
|
||||
|
@ -1011,6 +1075,62 @@ public class ChartHtmlizer
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Htmlize organization type chart.
|
||||
*
|
||||
* @param organization
|
||||
* the organization
|
||||
* @return the string
|
||||
* @throws StatoolInfosException
|
||||
* the statool infos exception
|
||||
*/
|
||||
public static String htmlizeOrganizationTypeChart(final Organization organization) throws StatoolInfosException
|
||||
{
|
||||
String result;
|
||||
|
||||
Organizations organizations = new Organizations();
|
||||
organizations.add(organization);
|
||||
|
||||
result = htmlizeOrganizationTypeChart(organizations);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Htmlize organization type chart.
|
||||
*
|
||||
* @param services
|
||||
* the services
|
||||
* @return the string
|
||||
* @throws StatoolInfosException
|
||||
* the statool infos exception
|
||||
*/
|
||||
public static String htmlizeOrganizationTypeChart(final Organizations organizations) throws StatoolInfosException
|
||||
{
|
||||
String result;
|
||||
|
||||
OrganizationTypeStats stats = StatAgent.statOrganizationType(organizations);
|
||||
|
||||
// {ASSOCIATION, INFORMAL, COOPERATIVE, MICROCOMPANY, COMPANY,
|
||||
// INDIVIDUAL, OTHER}, obligatoire).
|
||||
PieChart pie = new PieChart("Types d'organisations");
|
||||
pie.add("Association", stats.getAssociationCount(), ChartColor.GREEN);
|
||||
pie.add("Informel", stats.getInformalCount(), ChartColor.YELLOW);
|
||||
pie.add("Coopérative", stats.getCooperativeCount(), ChartColor.ORANGE);
|
||||
pie.add("Micro-entreprise", stats.getMicrocompanyCount(), ChartColor.RED);
|
||||
pie.add("Entreprise", stats.getCompanyCount(), ChartColor.VIOLET);
|
||||
pie.add("Individu", stats.getIndividualCount(), ChartColor.PURPLE);
|
||||
pie.add("Autre", stats.getOtherCount(), ChartColor.GREY);
|
||||
pie.add("Inconnu", stats.getUnknownCount(), ChartColor.BLUE);
|
||||
pie.setLegendPosition(Position.RIGHT);
|
||||
|
||||
result = DoughnutChartView.build(pie);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Htmlize registration chart.
|
||||
*
|
||||
|
@ -1452,7 +1572,7 @@ public class ChartHtmlizer
|
|||
}
|
||||
}
|
||||
|
||||
chart.add(String.valueOf(current), count, ChartColor.VIOLET);
|
||||
chart.add(String.valueOf(current), count, ChartColor.YELLOW);
|
||||
|
||||
current += 1;
|
||||
}
|
||||
|
@ -1520,13 +1640,13 @@ public class ChartHtmlizer
|
|||
ServiceInstallTypeStats stats = StatAgent.statServiceInstallType(services);
|
||||
|
||||
PieChart pie = new PieChart("Types d'installation du service");
|
||||
pie.add("Distribution", stats.getDistributionCount(), ChartColor.PURPLE);
|
||||
pie.add("Distribution", stats.getDistributionCount(), ChartColor.GREEN0);
|
||||
pie.add("Fournisseur", stats.getProviderCount(), ChartColor.GREEN);
|
||||
pie.add("Paquet", stats.getPackageCount(), ChartColor.YELLOW);
|
||||
pie.add("Outillage", stats.getToolingCount(), ChartColor.ORANGE);
|
||||
pie.add("Dépôt cloné", stats.getClonerepoCount(), ChartColor.RED);
|
||||
pie.add("Archive", stats.getArchiveCount(), ChartColor.VIOLET);
|
||||
pie.add("Sources", stats.getSourcesCount(), ChartColor.GREY);
|
||||
pie.add("Sources", stats.getSourcesCount(), ChartColor.PURPLE);
|
||||
pie.add("Containeur", stats.getContainerCount(), ChartColor.TURQUOISE);
|
||||
pie.add("Inconnu", stats.getUnknownCount(), ChartColor.BLUE);
|
||||
pie.setLegendPosition(Position.RIGHT);
|
||||
|
|
|
@ -74,12 +74,15 @@ public class FederationStatsPage
|
|||
data.setContent("organizationCountChart", ChartHtmlizer.htmlizeOrganizationCountChart(federation));
|
||||
data.setContent("organizationInOutChart", ChartHtmlizer.htmlizeOrganizationInOutChart(federation));
|
||||
|
||||
data.setContent("hostServerDistributionChart", ChartHtmlizer.htmlizeHostServerDistributionChart(services));
|
||||
data.setContent("serviceCountYearChart", ChartHtmlizer.htmlizeServiceCountYearChart(federation));
|
||||
data.setContent("hostServerTypeChart", ChartHtmlizer.htmlizeHostServerTypeChart(services));
|
||||
data.setContent("hostProviderTypeChart", ChartHtmlizer.htmlizeHostProviderTypeChart(services));
|
||||
data.setContent("serviceCountryChart", ChartHtmlizer.htmlizeServiceCountryChart(services));
|
||||
|
||||
data.setContent("hostNameChart", ChartHtmlizer.htmlizeHostNamePieChart(services));
|
||||
data.setContent("hostProviderHypervisorChart", ChartHtmlizer.htmlizeHostProviderHypervisorChart(services));
|
||||
|
||||
data.setContent("hostServerDistributionChart", ChartHtmlizer.htmlizeHostServerDistributionChart(services));
|
||||
data.setContent("serviceInstallTypeChart", ChartHtmlizer.htmlizeServiceInstallTypeChart(services));
|
||||
|
||||
{
|
||||
|
@ -92,13 +95,15 @@ public class FederationStatsPage
|
|||
data.setContent("registrationClientTypeChart", ChartHtmlizer.htmlizeRegistrationClientPieChart(stats));
|
||||
}
|
||||
|
||||
data.setContent("serviceCountYearChart", ChartHtmlizer.htmlizeServiceCountYearChart(federation));
|
||||
data.setContent("serviceDateStatusChart", ChartHtmlizer.htmlizeServiceDateStatusChart(services));
|
||||
data.setContent("organisationTypeChart", ChartHtmlizer.htmlizeOrganizationTypeChart(organizations));
|
||||
|
||||
data.setContent("softwareDistributionPieChart", ChartHtmlizer.htmlizeSoftwareDistributionPieChart(services));
|
||||
data.setContent("categoryDistributionPieChart", ChartHtmlizer.htmlizeCatergoryDistributionPieChart(services));
|
||||
|
||||
data.setContent("softwareDistributionChart", ChartHtmlizer.htmlizeSoftwareDistributionChart());
|
||||
data.setContent("softwareDistributionPieChart", ChartHtmlizer.htmlizeSoftwareDistributionPieChart(services));
|
||||
|
||||
data.setContent("categoryDistributionChart", ChartHtmlizer.htmlizeCategoryDistributionChart());
|
||||
data.setContent("categoryDistributionPieChart", ChartHtmlizer.htmlizeCatergoryDistributionPieChart(services));
|
||||
|
||||
//
|
||||
String content = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/federationStats.xhtml", data).toString();
|
||||
|
|
|
@ -67,12 +67,15 @@ public class OrganizationStatsPage
|
|||
data.setContent("turnoutChart", ChartHtmlizer.htmlizeOrganizationTurnoutChart(organization));
|
||||
|
||||
Services services = organization.getActiveServices();
|
||||
data.setContent("hostServerDistributionChart", ChartHtmlizer.htmlizeHostServerDistributionChart(services));
|
||||
data.setContent("serviceCountYearChart", ChartHtmlizer.htmlizeServiceCountYearChart(organization));
|
||||
data.setContent("hostServerTypeChart", ChartHtmlizer.htmlizeHostServerTypeChart(services));
|
||||
data.setContent("hostProviderTypeChart", ChartHtmlizer.htmlizeHostProviderTypeChart(services));
|
||||
data.setContent("serviceCountryChart", ChartHtmlizer.htmlizeServiceCountryChart(services));
|
||||
|
||||
data.setContent("hostNameChart", ChartHtmlizer.htmlizeHostNamePieChart(services));
|
||||
data.setContent("hostProviderHypervisorChart", ChartHtmlizer.htmlizeHostProviderHypervisorChart(services));
|
||||
|
||||
data.setContent("hostServerDistributionChart", ChartHtmlizer.htmlizeHostServerDistributionChart(services));
|
||||
data.setContent("serviceInstallTypeChart", ChartHtmlizer.htmlizeServiceInstallTypeChart(services));
|
||||
|
||||
{
|
||||
|
@ -86,7 +89,7 @@ public class OrganizationStatsPage
|
|||
}
|
||||
|
||||
data.setContent("serviceDateStatusChart", ChartHtmlizer.htmlizeServiceDateStatusChart(services));
|
||||
data.setContent("serviceCountYearChart", ChartHtmlizer.htmlizeServiceCountYearChart(organization));
|
||||
data.setContent("organisationTypeChart", ChartHtmlizer.htmlizeOrganizationTypeChart(organization));
|
||||
|
||||
//
|
||||
String content = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/organizationStatsPage.xhtml", data).toString();
|
||||
|
|
|
@ -61,12 +61,14 @@ public class ServiceStatsView
|
|||
data.setContent("turnoutChart", ChartHtmlizer.htmlizeOrganizationTurnoutChart(service));
|
||||
|
||||
Services services = Services.of(service);
|
||||
data.setContent("hostServerDistributionChart", ChartHtmlizer.htmlizeHostServerDistributionChart(services));
|
||||
data.setContent("hostServerTypeChart", ChartHtmlizer.htmlizeHostServerTypeChart(services));
|
||||
data.setContent("hostProviderTypeChart", ChartHtmlizer.htmlizeHostProviderTypeChart(services));
|
||||
data.setContent("serviceCountryChart", ChartHtmlizer.htmlizeServiceCountryChart(services));
|
||||
|
||||
data.setContent("hostNameChart", ChartHtmlizer.htmlizeHostNamePieChart(services));
|
||||
data.setContent("hostProviderHypervisorChart", ChartHtmlizer.htmlizeHostProviderHypervisorChart(services));
|
||||
|
||||
data.setContent("hostServerDistributionChart", ChartHtmlizer.htmlizeHostServerDistributionChart(services));
|
||||
data.setContent("serviceInstallTypeChart", ChartHtmlizer.htmlizeServiceInstallTypeChart(services));
|
||||
|
||||
{
|
||||
|
|
|
@ -23,14 +23,18 @@
|
|||
<div id="organizationInOutChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostServerDistributionChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountYearChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="hostServerTypeChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="hostProviderTypeChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountryChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostNameChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
<div id="serviceInstallTypeChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block; vertical-align: top;"/>
|
||||
<div id="hostProviderHypervisorChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostServerDistributionChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
<div id="serviceInstallTypeChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div id="registrationTypeChart" class="column chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
|
@ -44,11 +48,9 @@
|
|||
<div id="registrationClientTypeChart" class="chartborder" style="width: 122px; height: 97px; display: inline-block;"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div id="serviceDateStatusChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountYearChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
<div id="organisationTypeChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
<div>
|
||||
<div id="categoryDistributionPieChart" class="chartborder" style="width: 500px; height: 300px; display: inline-block;"/>
|
||||
<div id="softwareDistributionPieChart" class="chartborder" style="width: 500px; height: 300px; display: inline-block;"/>
|
||||
|
|
|
@ -19,13 +19,17 @@
|
|||
<div id="turnoutChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostServerDistributionChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountYearChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="hostServerTypeChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="hostProviderTypeChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountryChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostNameChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
<div id="hostProviderHypervisorChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostServerDistributionChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
<div id="serviceInstallTypeChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block; vertical-align: top;"/>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -43,7 +47,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<div id="serviceDateStatusChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountYearChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="organisationTypeChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -17,13 +17,17 @@
|
|||
<div id="turnoutChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostServerDistributionChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountYearChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="hostServerTypeChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="hostProviderTypeChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountryChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostNameChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
<div id="hostProviderHypervisorChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
</div>
|
||||
<div>
|
||||
<div id="hostServerDistributionChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block;"/>
|
||||
<div id="serviceInstallTypeChart" class="chartborder" style="width: 500px; height: 250px; display: inline-block; vertical-align: top;"/>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -41,7 +45,6 @@
|
|||
</div>
|
||||
<div>
|
||||
<div id="serviceDateStatusChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
<div id="serviceCountYearChart" class="chartborder" style="width: 250px; height: 200px; display: inline-block;"/>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -44,6 +44,7 @@ import fr.devinsy.statoolinfos.stats.categories.CategoryStat;
|
|||
import fr.devinsy.statoolinfos.stats.categories.CategoryStats;
|
||||
import fr.devinsy.statoolinfos.stats.country.CountryStats;
|
||||
import fr.devinsy.statoolinfos.stats.organizations.OrganizationTurnoutStats;
|
||||
import fr.devinsy.statoolinfos.stats.organizations.OrganizationTypeStats;
|
||||
import fr.devinsy.statoolinfos.stats.properties.PropertyStats;
|
||||
import fr.devinsy.statoolinfos.stats.propertyfiles.PropertiesFileStats;
|
||||
import fr.devinsy.statoolinfos.stats.services.HostProviderTypeStats;
|
||||
|
@ -328,6 +329,29 @@ public class StatAgent
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stat organization type.
|
||||
*
|
||||
* @param organization
|
||||
* the organization
|
||||
* @return the organization type stats
|
||||
*/
|
||||
public static OrganizationTypeStats statOrganizationType(final Organizations organizations)
|
||||
{
|
||||
OrganizationTypeStats result;
|
||||
|
||||
result = new OrganizationTypeStats();
|
||||
|
||||
//
|
||||
for (Organization organization : organizations)
|
||||
{
|
||||
result.inc(organization.getType());
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stat registration types.
|
||||
*
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
* Copyright (C) 2022 Christian Pierre MOMON <christian@momon.org>
|
||||
*
|
||||
* This file is part of StatoolInfos, simple service statistics tool.
|
||||
*
|
||||
* StatoolInfos is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* StatoolInfos is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with StatoolInfos. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package fr.devinsy.statoolinfos.stats.organizations;
|
||||
|
||||
import fr.devinsy.statoolinfos.core.Organization;
|
||||
|
||||
/**
|
||||
* The Class OrganizationTypeStats.
|
||||
*/
|
||||
public class OrganizationTypeStats
|
||||
{
|
||||
private long associationCount;
|
||||
private long informalCount;
|
||||
private long cooperativeCount;
|
||||
private long microcompanyCount;
|
||||
private long companyCount;
|
||||
private long individualCount;
|
||||
private long otherCount;
|
||||
private long unknownCount;
|
||||
|
||||
/**
|
||||
* Instantiates a new organization type stats.
|
||||
*/
|
||||
public OrganizationTypeStats()
|
||||
{
|
||||
this.associationCount = 0;
|
||||
this.informalCount = 0;
|
||||
this.cooperativeCount = 0;
|
||||
this.microcompanyCount = 0;
|
||||
this.companyCount = 0;
|
||||
this.individualCount = 0;
|
||||
this.otherCount = 0;
|
||||
this.unknownCount = 0;
|
||||
}
|
||||
|
||||
public long getAssociationCount()
|
||||
{
|
||||
return this.associationCount;
|
||||
}
|
||||
|
||||
public long getCompanyCount()
|
||||
{
|
||||
return this.companyCount;
|
||||
}
|
||||
|
||||
public long getCooperativeCount()
|
||||
{
|
||||
return this.cooperativeCount;
|
||||
}
|
||||
|
||||
public long getIndividualCount()
|
||||
{
|
||||
return this.individualCount;
|
||||
}
|
||||
|
||||
public long getInformalCount()
|
||||
{
|
||||
return this.informalCount;
|
||||
}
|
||||
|
||||
public long getMicrocompanyCount()
|
||||
{
|
||||
return this.microcompanyCount;
|
||||
}
|
||||
|
||||
public long getOtherCount()
|
||||
{
|
||||
return this.otherCount;
|
||||
}
|
||||
|
||||
public long getUnknownCount()
|
||||
{
|
||||
return this.unknownCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inc.
|
||||
*
|
||||
* @param type
|
||||
* the type
|
||||
*/
|
||||
public void inc(final Organization.Type type)
|
||||
{
|
||||
if (type == null)
|
||||
{
|
||||
this.unknownCount += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case ASSOCIATION:
|
||||
this.associationCount += 1;
|
||||
break;
|
||||
case COMPANY:
|
||||
this.companyCount += 1;
|
||||
break;
|
||||
case COOPERATIVE:
|
||||
this.cooperativeCount += 1;
|
||||
break;
|
||||
case INDIVIDUAL:
|
||||
this.individualCount += 1;
|
||||
break;
|
||||
case INFORMAL:
|
||||
this.informalCount += 1;
|
||||
break;
|
||||
case MICROCOMPANY:
|
||||
this.microcompanyCount += 1;
|
||||
break;
|
||||
case OTHER:
|
||||
this.otherCount += 1;
|
||||
break;
|
||||
default:
|
||||
this.unknownCount += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue