Improved property stats.
This commit is contained in:
parent
ea08e62eb0
commit
4604ab1e7b
9 changed files with 485 additions and 14 deletions
|
@ -65,6 +65,26 @@ public class Federation extends PathPropertyList
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the all services.
|
||||||
|
*
|
||||||
|
* @return the all services
|
||||||
|
*/
|
||||||
|
public Services getAllServices()
|
||||||
|
{
|
||||||
|
Services result;
|
||||||
|
|
||||||
|
result = new Services();
|
||||||
|
|
||||||
|
for (Organization organization : this.organizations)
|
||||||
|
{
|
||||||
|
result.addAll(organization.getServices());
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the description.
|
* Gets the description.
|
||||||
*
|
*
|
||||||
|
|
|
@ -255,11 +255,16 @@ public class Htmlizer
|
||||||
FileUtils.write(new File(htmlizeDirectory, "propertiesFiles.xhtml"), page, StandardCharsets.UTF_8);
|
FileUtils.write(new File(htmlizeDirectory, "propertiesFiles.xhtml"), page, StandardCharsets.UTF_8);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
{
|
||||||
logger.info("Htmlize propertyStats page.");
|
logger.info("Htmlize propertyStats page.");
|
||||||
PropertyStats stats = StatAgent.statProperties(federation);
|
PropertyStats stats = StatAgent.statAllProperties(federation);
|
||||||
page = PropertyStatsPage.build(stats);
|
PropertyStats federationStats = StatAgent.statFederationProperties(federation);
|
||||||
|
PropertyStats organizationsStats = StatAgent.statOrganizationsProperties(federation.getOrganizations());
|
||||||
|
PropertyStats servicesStats = StatAgent.statServicesProperties(federation.getAllServices());
|
||||||
|
page = PropertyStatsPage2.build(stats, federationStats, organizationsStats, servicesStats);
|
||||||
FileUtils.write(new File(htmlizeDirectory, "propertyStats.xhtml"), page, StandardCharsets.UTF_8);
|
FileUtils.write(new File(htmlizeDirectory, "propertyStats.xhtml"), page, StandardCharsets.UTF_8);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Htmlize organisation.
|
* Htmlize organisation.
|
||||||
|
|
71
src/fr/devinsy/statoolinfos/htmlize/MainMenuView.java
Normal file
71
src/fr/devinsy/statoolinfos/htmlize/MainMenuView.java
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2020 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.htmlize;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import fr.devinsy.statoolinfos.core.StatoolInfosException;
|
||||||
|
import fr.devinsy.statoolinfos.util.BuildInformation;
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
|
import fr.devinsy.xidyn.presenters.PresenterUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class MainMenuView.
|
||||||
|
*/
|
||||||
|
public class MainMenuView
|
||||||
|
{
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(MainMenuView.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the.
|
||||||
|
*
|
||||||
|
* @param federation
|
||||||
|
* the organization
|
||||||
|
* @return the string
|
||||||
|
* @throws StatoolInfosException
|
||||||
|
* the statool infos exception
|
||||||
|
*/
|
||||||
|
public static String build(final String... paths) throws StatoolInfosException
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TagDataManager data = new TagDataManager();
|
||||||
|
|
||||||
|
data.setContent("versionsup", BuildInformation.instance().version());
|
||||||
|
data.setContent("lastUpdateDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy HH':'mm", Locale.FRANCE)));
|
||||||
|
|
||||||
|
result = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/mainMenu.xhtml", data).toString();
|
||||||
|
}
|
||||||
|
catch (XidynException exception)
|
||||||
|
{
|
||||||
|
throw new StatoolInfosException("Error building mainMenu view: " + exception.getMessage(), exception);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
|
@ -35,7 +35,7 @@ import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
import fr.devinsy.xidyn.presenters.PresenterUtils;
|
import fr.devinsy.xidyn.presenters.PresenterUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class OrganizationPage.
|
* The Class PropertyStatsPage.
|
||||||
*/
|
*/
|
||||||
public class PropertyStatsPage
|
public class PropertyStatsPage
|
||||||
{
|
{
|
||||||
|
@ -78,7 +78,7 @@ public class PropertyStatsPage
|
||||||
index += 1;
|
index += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/propertyStats.xhtml", data).toString();
|
result = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/propertyStats2.xhtml", data).toString();
|
||||||
}
|
}
|
||||||
catch (XidynException exception)
|
catch (XidynException exception)
|
||||||
{
|
{
|
||||||
|
|
145
src/fr/devinsy/statoolinfos/htmlize/PropertyStatsPage2.java
Normal file
145
src/fr/devinsy/statoolinfos/htmlize/PropertyStatsPage2.java
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2020 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.htmlize;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import fr.devinsy.statoolinfos.core.StatoolInfosException;
|
||||||
|
import fr.devinsy.statoolinfos.core.StatoolInfosUtils;
|
||||||
|
import fr.devinsy.statoolinfos.stats.PropertyStat;
|
||||||
|
import fr.devinsy.statoolinfos.stats.PropertyStats;
|
||||||
|
import fr.devinsy.statoolinfos.util.BuildInformation;
|
||||||
|
import fr.devinsy.xidyn.XidynException;
|
||||||
|
import fr.devinsy.xidyn.data.TagDataManager;
|
||||||
|
import fr.devinsy.xidyn.presenters.PresenterUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class OrganizationPage.
|
||||||
|
*/
|
||||||
|
public class PropertyStatsPage2
|
||||||
|
{
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(PropertyStatsPage2.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the.
|
||||||
|
*
|
||||||
|
* @param service
|
||||||
|
* the service
|
||||||
|
* @return the string
|
||||||
|
* @throws StatoolInfosException
|
||||||
|
* the statool infos exception
|
||||||
|
*/
|
||||||
|
public static String build(final PropertyStats stats, final PropertyStats federationStats, final PropertyStats organizationsStats, final PropertyStats servicesStats) throws StatoolInfosException
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
logger.debug("Building propertyStats page…");
|
||||||
|
|
||||||
|
TagDataManager data = new TagDataManager();
|
||||||
|
|
||||||
|
data.setContent("versionsup", BuildInformation.instance().version());
|
||||||
|
data.setContent("lastUpdateDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy HH':'mm", Locale.FRANCE)));
|
||||||
|
|
||||||
|
//
|
||||||
|
data.setContent("statsTitle", "Tous");
|
||||||
|
data.setContent("propertyCount", stats.getPropertyCount());
|
||||||
|
data.setContent("fileCount", stats.getFileCount());
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
for (PropertyStat stat : stats.getList().sortByFilledCount().reverse())
|
||||||
|
{
|
||||||
|
data.setEscapedContent("propertyLine", index, "propertyLinePath", stat.getPath());
|
||||||
|
data.setContent("propertyLine", index, "propertyLineBlankCount", stat.getBlankCount());
|
||||||
|
data.setContent("propertyLine", index, "propertyLineBlankCountPercentage", StatoolInfosUtils.toPercentage(stat.getBlankCount(), stats.getFileCount()));
|
||||||
|
data.setContent("propertyLine", index, "propertyLineFilledCount", stat.getFilledCount());
|
||||||
|
data.setContent("propertyLine", index, "propertyLineFilledCountPercentage", StatoolInfosUtils.toPercentage(stat.getFilledCount(), stats.getFileCount()));
|
||||||
|
|
||||||
|
index += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
data.setContent("statsTitleF", "Fédération");
|
||||||
|
data.setContent("propertyCountF", federationStats.getPropertyCount());
|
||||||
|
data.setContent("fileCountF", federationStats.getFileCount());
|
||||||
|
|
||||||
|
index = 0;
|
||||||
|
for (PropertyStat stat : federationStats.getList().sortByFilledCount().reverse())
|
||||||
|
{
|
||||||
|
data.setEscapedContent("propertyLineF", index, "propertyLinePathF", stat.getPath());
|
||||||
|
data.setContent("propertyLineF", index, "propertyLineBlankCountF", stat.getBlankCount());
|
||||||
|
data.setContent("propertyLineF", index, "propertyLineBlankCountPercentageF", StatoolInfosUtils.toPercentage(stat.getBlankCount(), federationStats.getFileCount()));
|
||||||
|
data.setContent("propertyLineF", index, "propertyLineFilledCountF", stat.getFilledCount());
|
||||||
|
data.setContent("propertyLineF", index, "propertyLineFilledCountPercentageF", StatoolInfosUtils.toPercentage(stat.getFilledCount(), federationStats.getFileCount()));
|
||||||
|
|
||||||
|
index += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
data.setContent("statsTitleO", "Organisations");
|
||||||
|
data.setContent("propertyCountO", organizationsStats.getPropertyCount());
|
||||||
|
data.setContent("fileCountO", organizationsStats.getFileCount());
|
||||||
|
|
||||||
|
index = 0;
|
||||||
|
for (PropertyStat stat : organizationsStats.getList().sortByFilledCount().reverse())
|
||||||
|
{
|
||||||
|
data.setEscapedContent("propertyLineO", index, "propertyLinePathO", stat.getPath());
|
||||||
|
data.setContent("propertyLineO", index, "propertyLineBlankCountO", stat.getBlankCount());
|
||||||
|
data.setContent("propertyLineO", index, "propertyLineBlankCountPercentageO", StatoolInfosUtils.toPercentage(stat.getBlankCount(), organizationsStats.getFileCount()));
|
||||||
|
data.setContent("propertyLineO", index, "propertyLineFilledCountO", stat.getFilledCount());
|
||||||
|
data.setContent("propertyLineO", index, "propertyLineFilledCountPercentageO", StatoolInfosUtils.toPercentage(stat.getFilledCount(), organizationsStats.getFileCount()));
|
||||||
|
|
||||||
|
index += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
data.setContent("statsTitleS", "Services");
|
||||||
|
data.setContent("propertyCountS", servicesStats.getPropertyCount());
|
||||||
|
data.setContent("fileCountS", servicesStats.getFileCount());
|
||||||
|
|
||||||
|
index = 0;
|
||||||
|
for (PropertyStat stat : servicesStats.getList().sortByFilledCount().reverse())
|
||||||
|
{
|
||||||
|
data.setEscapedContent("propertyLineS", index, "propertyLinePathS", stat.getPath());
|
||||||
|
data.setContent("propertyLineS", index, "propertyLineBlankCountS", stat.getBlankCount());
|
||||||
|
data.setContent("propertyLineS", index, "propertyLineBlankCountPercentageS", StatoolInfosUtils.toPercentage(stat.getBlankCount(), servicesStats.getFileCount()));
|
||||||
|
data.setContent("propertyLineS", index, "propertyLineFilledCountS", stat.getFilledCount());
|
||||||
|
data.setContent("propertyLineS", index, "propertyLineFilledCountPercentageS", StatoolInfosUtils.toPercentage(stat.getFilledCount(), servicesStats.getFileCount()));
|
||||||
|
|
||||||
|
index += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
result = PresenterUtils.dynamize("/fr/devinsy/statoolinfos/htmlize/propertyStats2.xhtml", data).toString();
|
||||||
|
}
|
||||||
|
catch (XidynException exception)
|
||||||
|
{
|
||||||
|
throw new StatoolInfosException("Error building service page: " + exception.getMessage(), exception);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
26
src/fr/devinsy/statoolinfos/htmlize/mainMenu.xhtml
Normal file
26
src/fr/devinsy/statoolinfos/htmlize/mainMenu.xhtml
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>StatoolInfos</title>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="keywords" content="statoolinfos,devinsy,federation" />
|
||||||
|
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="statoolinfos.css" />
|
||||||
|
<script src="sorttable.js" />
|
||||||
|
<script src="Chart.bundle.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="margin: 5px 10px 10px 10px;">
|
||||||
|
<h1><a href="index.xhtml"><img src="logo.jpg" style="width: 35px;"/> StatoolInfos</a><sup id="versionsup" style="font-size: 9px;">v0.0.14</sup> – <a href="about.xhtml">À propos</a><span style="font-size: 9px; float: right;">Page updated on<br/><span id="lastUpdateDate" style="font-size: 9px;">xx/xx/xxxx xx:xx</span></span></h1>
|
||||||
|
|
||||||
|
<div style="margin: 5px;">
|
||||||
|
<a id="propertiesRawButton" href="propertiesFiles.xhtml" class="button">Properties</a>
|
||||||
|
<a id="propertiesRawButton" href="propertyStats.xhtml" class="button">Property Stats</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a href="index.xhtml">Accueil</a> <span id="menuPath">– <span id="menuPathItem"></span></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -27,9 +27,9 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 150px;">Path</th>
|
<th style="width: 150px;">Path</th>
|
||||||
<th style="width: 20px;">Filled Count</th>
|
<th style="width: 10px;">Filled Count</th>
|
||||||
<th style="width: 10px;">File %</th>
|
<th style="width: 10px;">File %</th>
|
||||||
<th style="width: 20px;">Blank Count</th>
|
<th style="width: 10px;">Blank Count</th>
|
||||||
<th style="width: 10px;">File %</th>
|
<th style="width: 10px;">File %</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -45,6 +45,7 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
143
src/fr/devinsy/statoolinfos/htmlize/propertyStats2.xhtml
Normal file
143
src/fr/devinsy/statoolinfos/htmlize/propertyStats2.xhtml
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>StatoolInfos</title>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="keywords" content="statoolinfos,devinsy,federation" />
|
||||||
|
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="statoolinfos.css" />
|
||||||
|
<script src="sorttable.js" />
|
||||||
|
<script src="Chart.bundle.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="margin: 5px 10px 10px 10px;">
|
||||||
|
<h1><a href="index.xhtml"><img src="logo.jpg" style="width: 35px;"/> StatoolInfos</a><sup id="versionsup" style="font-size: 9px;">v0.0.14</sup> – <a href="about.xhtml">À propos</a><span style="font-size: 9px; float: right;">Page updated on<br/><span id="lastUpdateDate" style="font-size: 9px;">xx/xx/xxxx xx:xx</span></span></h1>
|
||||||
|
|
||||||
|
<div style="margin: 5px;">
|
||||||
|
<a id="propertiesRawButton" href="#" class="button">Property Stats</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row center_table" style="width: 1100px;">
|
||||||
|
<div class="column center">
|
||||||
|
<h2 id="statsTitleO">Statistics des property</h2>
|
||||||
|
<div>Nombre de property : <span id="propertyCountO">n/a</span></div>
|
||||||
|
<div>Nombre de fichiers : <span id="fileCountO">n/a</span></div>
|
||||||
|
<div class="left">
|
||||||
|
<table class="table_classic center_table sortable">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 150px;">Path</th>
|
||||||
|
<th style="width: 10px;">Filled Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
<th style="width: 10px;">Blank Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr id="propertyLineO">
|
||||||
|
<td id="propertyLinePathO" class="">n/a</td>
|
||||||
|
<td id="propertyLineFilledCountO" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineFilledCountPercentageO" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCountO" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCountPercentageO" class="td_number">n/a</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="column" style="width: 20px;"> </div>
|
||||||
|
|
||||||
|
<div class="column center">
|
||||||
|
<h2 id="statsTitleS">Statistics des property</h2>
|
||||||
|
<div>Nombre de property : <span id="propertyCountS">n/a</span></div>
|
||||||
|
<div>Nombre de fichiers : <span id="fileCountS">n/a</span></div>
|
||||||
|
<div class="left">
|
||||||
|
<table class="table_classic center_table sortable " style="margin-left: auto; margin-right: auto;">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 150px;">Path</th>
|
||||||
|
<th style="width: 10px;">Filled Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
<th style="width: 10px;">Blank Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr id="propertyLineS">
|
||||||
|
<td id="propertyLinePathS" class="">n/a</td>
|
||||||
|
<td id="propertyLineFilledCountS" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineFilledCountPercentageS" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCountS" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCountPercentageS" class="td_number">n/a</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row center_table" style="width: 1100px;">
|
||||||
|
<div class="column center">
|
||||||
|
<h2 id="statsTitle">Statistics des property</h2>
|
||||||
|
<div>Nombre de property : <span id="propertyCount">n/a</span></div>
|
||||||
|
<div>Nombre de fichiers : <span id="fileCount">n/a</span></div>
|
||||||
|
<div class="left">
|
||||||
|
<table class="table_classic center_table sortable " style="margin-left: auto; margin-right: auto;">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 150px;">Path</th>
|
||||||
|
<th style="width: 10px;">Filled Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
<th style="width: 10px;">Blank Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr id="propertyLine">
|
||||||
|
<td id="propertyLinePath" class="">n/a</td>
|
||||||
|
<td id="propertyLineFilledCount" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineFilledCountPercentage" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCount" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCountPercentage" class="td_number">n/a</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="column" style="width: 20px;"> </div>
|
||||||
|
|
||||||
|
<div class="column center">
|
||||||
|
<h2 id="statsTitleF">Statistics des property</h2>
|
||||||
|
<div>Nombre de property : <span id="propertyCountF">n/a</span></div>
|
||||||
|
<div>Nombre de fichiers : <span id="fileCountF">n/a</span></div>
|
||||||
|
<div class="left">
|
||||||
|
<table class="table_classic center_table sortable " style="margin-left: auto; margin-right: auto;">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 150px;">Path</th>
|
||||||
|
<th style="width: 10px;">Filled Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
<th style="width: 10px;">Blank Count</th>
|
||||||
|
<th style="width: 10px;">File %</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr id="propertyLineF">
|
||||||
|
<td id="propertyLinePathF" class="">n/a</td>
|
||||||
|
<td id="propertyLineFilledCountF" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineFilledCountPercentageF" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCountF" class="td_number">n/a</td>
|
||||||
|
<td id="propertyLineBlankCountPercentageF" class="td_number">n/a</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -20,7 +20,9 @@ package fr.devinsy.statoolinfos.stats;
|
||||||
|
|
||||||
import fr.devinsy.statoolinfos.core.Federation;
|
import fr.devinsy.statoolinfos.core.Federation;
|
||||||
import fr.devinsy.statoolinfos.core.Organization;
|
import fr.devinsy.statoolinfos.core.Organization;
|
||||||
|
import fr.devinsy.statoolinfos.core.Organizations;
|
||||||
import fr.devinsy.statoolinfos.core.Service;
|
import fr.devinsy.statoolinfos.core.Service;
|
||||||
|
import fr.devinsy.statoolinfos.core.Services;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class StatAgent.
|
* The Class StatAgent.
|
||||||
|
@ -42,24 +44,82 @@ public class StatAgent
|
||||||
* the fedration
|
* the fedration
|
||||||
* @return the property stats
|
* @return the property stats
|
||||||
*/
|
*/
|
||||||
public static PropertyStats statProperties(final Federation federation)
|
public static PropertyStats statAllProperties(final Federation federation)
|
||||||
{
|
{
|
||||||
PropertyStats result;
|
PropertyStats result;
|
||||||
|
|
||||||
PropertyStats stats = new PropertyStats();
|
result = new PropertyStats();
|
||||||
|
|
||||||
stats.stat(federation);
|
result.stat(federation);
|
||||||
for (Organization organization : federation.getOrganizations())
|
for (Organization organization : federation.getOrganizations())
|
||||||
{
|
{
|
||||||
stats.stat(organization);
|
result.stat(organization);
|
||||||
|
|
||||||
for (Service service : organization.getServices())
|
for (Service service : organization.getServices())
|
||||||
{
|
{
|
||||||
stats.stat(service);
|
result.stat(service);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
result = stats;
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stat federation properties.
|
||||||
|
*
|
||||||
|
* @param federation
|
||||||
|
* the federation
|
||||||
|
* @return the property stats
|
||||||
|
*/
|
||||||
|
public static PropertyStats statFederationProperties(final Federation federation)
|
||||||
|
{
|
||||||
|
PropertyStats result;
|
||||||
|
|
||||||
|
result = new PropertyStats();
|
||||||
|
|
||||||
|
result.stat(federation);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stat organization properties.
|
||||||
|
*
|
||||||
|
* @param organization
|
||||||
|
* the federation
|
||||||
|
* @return the property stats
|
||||||
|
*/
|
||||||
|
public static PropertyStats statOrganizationsProperties(final Organizations organizations)
|
||||||
|
{
|
||||||
|
PropertyStats result;
|
||||||
|
|
||||||
|
result = new PropertyStats();
|
||||||
|
|
||||||
|
for (Organization organization : organizations)
|
||||||
|
{
|
||||||
|
result.stat(organization);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param services
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static PropertyStats statServicesProperties(final Services services)
|
||||||
|
{
|
||||||
|
PropertyStats result;
|
||||||
|
|
||||||
|
result = new PropertyStats();
|
||||||
|
|
||||||
|
for (Service service : services)
|
||||||
|
{
|
||||||
|
result.stat(service);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in a new issue