Improved Uptime feature.
This commit is contained in:
parent
f8a5152bb7
commit
fe72332ff3
14 changed files with 274 additions and 22 deletions
|
@ -61,8 +61,6 @@ public class FederationMetricSummaryPage
|
|||
*/
|
||||
public static void build(final File htmlizeDirectory, final Federation federation, final ViewMenu view, final PeriodMenu period) throws StatoolInfosException, IOException
|
||||
{
|
||||
String result;
|
||||
|
||||
try
|
||||
{
|
||||
TagDataManager data = new TagDataManager();
|
||||
|
@ -71,7 +69,7 @@ public class FederationMetricSummaryPage
|
|||
data.setContent("metricMenuView", FederationMetricMenuView.htmlize(federation, TypeMenu.SUMMARY, view, period));
|
||||
|
||||
FederationMetricHtmlizer.htmlize(data, "http.hits.visitors", federation, view, period, "metrics.http.hits.visitors", ChartColor.GREEN);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.ip.visitors", federation, view, period, "metrics.http.ip.visitors", ChartColor.GREEN);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors.humans", federation, view, period, "metrics.http.visitors.humans", ChartColor.GREEN);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visits.visitors", federation, view, period, "metrics.http.visits.visitors", ChartColor.GREEN);
|
||||
|
||||
//
|
||||
|
|
|
@ -95,6 +95,18 @@ public class FederationMetricWebPage
|
|||
FederationMetricHtmlizer.htmlize(data, "http.ip.ipv4", federation, view, period, "metrics.http.ip.ipv4", ChartColor.YELLOW);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.ip.ipv6", federation, view, period, "metrics.http.ip.ipv6", ChartColor.GREEN);
|
||||
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors", federation, view, period, "metrics.http.visitors", ChartColor.BLUE);
|
||||
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors-humansbots", federation, view, period, "http.visitors (humans + bots)", "metrics.http.visitors.humans", ChartColor.GREEN,
|
||||
"metrics.http.visitors.bots", ChartColor.YELLOW);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors.humans", federation, view, period, "metrics.http.visitors.humans", ChartColor.GREEN);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors.bots", federation, view, period, "metrics.http.visitors.bots", ChartColor.YELLOW);
|
||||
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors-ipv4ipv6", federation, view, period, "http.visitors (ipv4 + ipv6)", "metrics.http.visitors.ipv4", ChartColor.YELLOW,
|
||||
"metrics.http.visitors.ipv6", ChartColor.GREEN);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors.ipv4", federation, view, period, "metrics.http.visitors.ipv4", ChartColor.YELLOW);
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visitors.ipv6", federation, view, period, "metrics.http.visitors.ipv6", ChartColor.GREEN);
|
||||
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visits", federation, view, period, "metrics.http.visits", ChartColor.BLUE);
|
||||
|
||||
FederationMetricHtmlizer.htmlize(data, "http.visits-visitorsbots", federation, view, period, "http.visits (visitors + bots)", "metrics.http.visits.visitors", ChartColor.GREEN,
|
||||
|
|
|
@ -70,7 +70,7 @@ public class OrganizationMetricSummaryPage
|
|||
data.setContent("metricMenuView", OrganizationMetricMenuView.htmlize(organization, TypeMenu.SUMMARY, view, period));
|
||||
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.hits.visitors", organization, view, period, "metrics.http.hits.visitors", ChartColor.GREEN);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.ip.visitors", organization, view, period, "metrics.http.ip.visitors", ChartColor.GREEN);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors.humans", organization, view, period, "metrics.http.visitors.humans", ChartColor.GREEN);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visits.visitors", organization, view, period, "metrics.http.visits.visitors", ChartColor.GREEN);
|
||||
|
||||
//
|
||||
|
|
|
@ -102,6 +102,18 @@ public class OrganizationMetricWebPage
|
|||
OrganizationMetricHtmlizer.htmlize(data, "http.ip.ipv4", organization, view, period, "metrics.http.ip.ipv4", ChartColor.YELLOW);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.ip.ipv6", organization, view, period, "metrics.http.ip.ipv6", ChartColor.GREEN);
|
||||
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors", organization, view, period, "metrics.http.visitors", ChartColor.BLUE);
|
||||
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors-humansbots", organization, view, period, "http.visitors (humans + bots)", "metrics.http.visitors.humans", ChartColor.GREEN,
|
||||
"metrics.http.visitors.bots", ChartColor.YELLOW);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors.humans", organization, view, period, "metrics.http.visitors.humans", ChartColor.GREEN);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors.bots", organization, view, period, "metrics.http.visitors.bots", ChartColor.YELLOW);
|
||||
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors-ipv4ipv6", organization, view, period, "http.visitors (ipv4 + ipv6)", "metrics.http.visitors.ipv4", ChartColor.YELLOW,
|
||||
"metrics.http.visitors.ipv6", ChartColor.GREEN);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors.ipv4", organization, view, period, "metrics.http.visitors.ipv4", ChartColor.YELLOW);
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visitors.ipv6", organization, view, period, "metrics.http.visitors.ipv6", ChartColor.GREEN);
|
||||
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visits", organization, view, period, "metrics.http.visits", ChartColor.BLUE);
|
||||
|
||||
OrganizationMetricHtmlizer.htmlize(data, "http.visits-visitorsbots", organization, view, period, "http.visits (visitors + bots)", "metrics.http.visits.visitors", ChartColor.GREEN,
|
||||
|
|
|
@ -70,7 +70,7 @@ public class ServiceMetricSummaryPage
|
|||
data.setContent("metricMenuView", ServiceMetricMenuView.htmlize(service, TypeMenu.SUMMARY, view, period));
|
||||
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.hits.visitors", service, view, period, "metrics.http.hits.visitors", ChartColor.GREEN);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.ip.visitors", service, view, period, "metrics.http.ip.visitors", ChartColor.GREEN);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visitors.humans", service, view, period, "metrics.http.visitors.humans", ChartColor.GREEN);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visits.visitors", service, view, period, "metrics.http.visits.visitors", ChartColor.GREEN);
|
||||
|
||||
//
|
||||
|
|
|
@ -101,6 +101,18 @@ public class ServiceMetricWebPage
|
|||
ServiceMetricHtmlizer.htmlize(data, "http.ip.ipv4", service, view, period, "metrics.http.ip.ipv4", ChartColor.YELLOW);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.ip.ipv6", service, view, period, "metrics.http.ip.ipv6", ChartColor.GREEN);
|
||||
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visitors", service, view, period, "metrics.http.ip", ChartColor.BLUE);
|
||||
|
||||
ServiceMetricHtmlizer.htmlizeData(data, "http.visitors-humansbots", service, view, period, "http.visitors (humans + bots)", "metrics.http.visitors.humans", ChartColor.GREEN,
|
||||
"metrics.http.visitors.bots", ChartColor.YELLOW);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visitors.humans", service, view, period, "metrics.http.visitors.humans", ChartColor.GREEN);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visitors.bots", service, view, period, "metrics.http.visitors.bots", ChartColor.YELLOW);
|
||||
|
||||
ServiceMetricHtmlizer.htmlizeData(data, "http.visitors-ipv4ipv6", service, view, period, "http.visitors (ipv4 + ipv6)", "metrics.http.visitors.ipv4", ChartColor.YELLOW,
|
||||
"metrics.http.visitors.ipv6", ChartColor.GREEN);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visitors.ipv4", service, view, period, "metrics.http.visitors.ipv4", ChartColor.YELLOW);
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visitors.ipv6", service, view, period, "metrics.http.visitors.ipv6", ChartColor.GREEN);
|
||||
|
||||
ServiceMetricHtmlizer.htmlize(data, "http.visits", service, view, period, "metrics.http.visits", ChartColor.BLUE);
|
||||
|
||||
ServiceMetricHtmlizer.htmlizeData(data, "http.visits-visitorsbots", service, view, period, "http.visits (visitors + bots)", "metrics.http.visits.visitors", ChartColor.GREEN,
|
||||
|
|
|
@ -32,6 +32,7 @@ import fr.devinsy.statoolinfos.core.Services;
|
|||
import fr.devinsy.statoolinfos.core.StatoolInfosException;
|
||||
import fr.devinsy.statoolinfos.uptime.UptimeJournal;
|
||||
import fr.devinsy.statoolinfos.uptime.UptimeStat;
|
||||
import fr.devinsy.strings.StringList;
|
||||
import fr.devinsy.xidyn.XidynException;
|
||||
import fr.devinsy.xidyn.data.TagDataManager;
|
||||
import fr.devinsy.xidyn.presenters.PresenterUtils;
|
||||
|
@ -63,19 +64,6 @@ public class UptimeView
|
|||
{
|
||||
TagDataManager data = new TagDataManager();
|
||||
|
||||
int index = 0;
|
||||
for (Service service : services.sortByName())
|
||||
{
|
||||
//
|
||||
data.setAttribute("line", index, "lineLogo", "src", service.getLogoFileName());
|
||||
data.setEscapedContent("line", index, "lineNameValue", service.getName());
|
||||
data.setAttribute("line", index, "lineNameLink", "href", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml");
|
||||
|
||||
data.setAttribute("line", index, "lineOrganizationLink", "href", service.getOrganization().getTechnicalName() + ".xhtml");
|
||||
data.setAttribute("line", index, "lineOrganizationLogo", "src", service.getOrganization().getLogoFileName());
|
||||
data.setEscapedContent("line", index, "lineOrganizationValue", service.getOrganization().getName());
|
||||
|
||||
//
|
||||
LocalDate now = LocalDate.now();
|
||||
for (int dayCount = 0; dayCount < 22; dayCount++)
|
||||
{
|
||||
|
@ -89,18 +77,54 @@ public class UptimeView
|
|||
if ((weekDay == DayOfWeek.SUNDAY) || (weekDay == DayOfWeek.SATURDAY))
|
||||
{
|
||||
data.setAttribute("lineHeader-" + dayCount, "style", "background-color: gainsboro;");
|
||||
data.setAttribute("line", index, "uptime-" + dayCount, "style", "background-color: gainsboro;");
|
||||
}
|
||||
else
|
||||
{
|
||||
data.setAttribute("lineHeader-" + dayCount, "style", "background-color: #ececec;");
|
||||
}
|
||||
}
|
||||
|
||||
int index = 0;
|
||||
for (Service service : services.sortByName())
|
||||
{
|
||||
//
|
||||
data.setAttribute("line", index, "lineLogo", "src", service.getLogoFileName());
|
||||
data.setEscapedContent("line", index, "lineNameValue", service.getName());
|
||||
data.setAttribute("line", index, "lineNameLink", "href", service.getOrganization().getTechnicalName() + "-" + service.getTechnicalName() + ".xhtml");
|
||||
|
||||
data.setAttribute("line", index, "lineOrganizationLink", "href", service.getOrganization().getTechnicalName() + ".xhtml");
|
||||
data.setAttribute("line", index, "lineOrganizationLogo", "src", service.getOrganization().getLogoFileName());
|
||||
data.setEscapedContent("line", index, "lineOrganizationValue", service.getOrganization().getName());
|
||||
|
||||
//
|
||||
for (int dayCount = 0; dayCount < 22; dayCount++)
|
||||
{
|
||||
LocalDate date = now.minusDays(dayCount);
|
||||
|
||||
//
|
||||
DayOfWeek weekDay = date.getDayOfWeek();
|
||||
if ((weekDay == DayOfWeek.SUNDAY) || (weekDay == DayOfWeek.SATURDAY))
|
||||
{
|
||||
data.setAttribute("line", index, "uptime-" + dayCount, "style", "background-color: gainsboro;");
|
||||
}
|
||||
|
||||
//
|
||||
UptimeStat stat = journal.getStat(service.getWebsiteURL(), date);
|
||||
StringList lines = new StringList();
|
||||
String header = String.format("%d ok + %d err", stat.getOkCount(), stat.getErrorCount());
|
||||
lines.add(header);
|
||||
header = date.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
|
||||
lines.add(header);
|
||||
if (stat.getErrorCount() > 0)
|
||||
{
|
||||
lines.addAll(journal.getUptimes(service.getWebsiteURL(), date).toTimeList());
|
||||
}
|
||||
|
||||
data.setAttribute("line", index, "statusImg-" + dayCount, "src", "status-" + stat.getStatus().toString().toLowerCase() + ".png");
|
||||
String title = String.format("%d ok + %d err %s", stat.getOkCount(), stat.getErrorCount(), date.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")));
|
||||
data.setAttribute("line", index, "statusImg-" + dayCount, "title", title);
|
||||
// String title = String.format("%d ok + %d err %s",
|
||||
// stat.getOkCount(), stat.getErrorCount(),
|
||||
// date.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")));
|
||||
data.setAttribute("line", index, "statusImg-" + dayCount, "title", lines.toStringSeparatedBy(" "));
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<div id="metricMenuView" />
|
||||
<div id="charts" style="display: block;">
|
||||
<div id="http.hits.visitors" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.ip.visitors" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.visitors.humans" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.visits.visitors" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -46,6 +46,17 @@
|
|||
<div id="http.ip.visitors" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.ip.bots" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
|
||||
<h2>http.visitors</h2>
|
||||
<div id="http.visitors" style="width: 450px; height: 300px; border: 1px solid #e7e7e7;"/>
|
||||
|
||||
<div id="http.visitors-ipv4ipv6" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.visitors.ipv4" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.visitors.ipv6" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<br/>
|
||||
<div id="http.visitors-humansbots" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.visitors.humans" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
<div id="http.visitors.bots" style="width: 450px; height: 300px; display: inline-block; border: 1px solid #e7e7e7;"/>
|
||||
|
||||
<h2>http.visits</h2>
|
||||
<div id="http.visits" style="width: 450px; height: 300px; border: 1px solid #e7e7e7;"/>
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ public class Uptime
|
|||
return this.code;
|
||||
}
|
||||
|
||||
public LocalDateTime getDatetime()
|
||||
public LocalDateTime getDateTime()
|
||||
{
|
||||
return this.datetime;
|
||||
}
|
||||
|
|
126
src/fr/devinsy/statoolinfos/uptime/UptimeComparator.java
Normal file
126
src/fr/devinsy/statoolinfos/uptime/UptimeComparator.java
Normal file
|
@ -0,0 +1,126 @@
|
|||
/*
|
||||
* Copyright (C) 2021 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.uptime;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Comparator;
|
||||
|
||||
import fr.devinsy.statoolinfos.util.CompareUtils;
|
||||
|
||||
/**
|
||||
* The Class UptimeComparator.
|
||||
*/
|
||||
public class UptimeComparator implements Comparator<Uptime>
|
||||
{
|
||||
public enum Sorting
|
||||
{
|
||||
DATETIME
|
||||
}
|
||||
|
||||
private Sorting sorting;
|
||||
|
||||
/**
|
||||
* Instantiates a new uptime comparator.
|
||||
*
|
||||
* @param sorting
|
||||
* the sorting
|
||||
*/
|
||||
public UptimeComparator(final Sorting sorting)
|
||||
{
|
||||
this.sorting = sorting;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare.
|
||||
*
|
||||
* @param alpha
|
||||
* the alpha
|
||||
* @param bravo
|
||||
* the bravo
|
||||
* @return the int
|
||||
*/
|
||||
@Override
|
||||
public int compare(final Uptime alpha, final Uptime 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 Uptime alpha, final Uptime bravo, final Sorting sorting)
|
||||
{
|
||||
int result;
|
||||
|
||||
if (sorting == null)
|
||||
{
|
||||
result = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (sorting)
|
||||
{
|
||||
default:
|
||||
case DATETIME:
|
||||
result = CompareUtils.compare(getDateTime(alpha), getDateTime(bravo));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the datetime.
|
||||
*
|
||||
* @param source
|
||||
* the source
|
||||
* @return the datetime
|
||||
*/
|
||||
public static LocalDateTime getDateTime(final Uptime source)
|
||||
{
|
||||
LocalDateTime result;
|
||||
|
||||
if (source == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = source.getDateTime();
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -120,7 +120,7 @@ public class UptimeJournal
|
|||
result.incError();
|
||||
}
|
||||
|
||||
if ((older == null) || (older.getDatetime().isAfter(uptime.getDatetime())))
|
||||
if ((older == null) || (uptime.getDateTime().isAfter(older.getDateTime())))
|
||||
{
|
||||
older = uptime;
|
||||
}
|
||||
|
|
|
@ -221,7 +221,7 @@ public class UptimeJournalFile
|
|||
{
|
||||
for (Uptime uptime : journal.getUptimesAll())
|
||||
{
|
||||
String line = String.format("%s %s %d %s", uptime.getDatetime().toString(), uptime.getStatus(), uptime.getCode(), uptime.getUrl());
|
||||
String line = String.format("%s %s %d %s", uptime.getDateTime().toString(), uptime.getStatus(), uptime.getCode(), uptime.getUrl());
|
||||
out.write(line);
|
||||
out.write("\n");
|
||||
}
|
||||
|
|
|
@ -19,12 +19,15 @@
|
|||
package fr.devinsy.statoolinfos.uptime;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import fr.devinsy.strings.StringList;
|
||||
|
||||
/**
|
||||
* The Class Uptimes.
|
||||
*/
|
||||
|
@ -76,7 +79,7 @@ public class Uptimes extends ArrayList<Uptime>
|
|||
|
||||
for (Uptime uptime : this)
|
||||
{
|
||||
if (uptime.getDatetime().toLocalDate().isEqual(date))
|
||||
if (uptime.getDateTime().toLocalDate().isEqual(date))
|
||||
{
|
||||
result.add(uptime);
|
||||
}
|
||||
|
@ -102,10 +105,64 @@ public class Uptimes extends ArrayList<Uptime>
|
|||
{
|
||||
Uptime uptime = iterator.next();
|
||||
|
||||
if (uptime.getDatetime().toLocalDate().isBefore(limit))
|
||||
if (uptime.getDateTime().toLocalDate().isBefore(limit))
|
||||
{
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort.
|
||||
*
|
||||
* @param sorting
|
||||
* the sorting
|
||||
* @return the files
|
||||
*/
|
||||
public Uptimes sort(final UptimeComparator.Sorting sorting)
|
||||
{
|
||||
Uptimes result;
|
||||
|
||||
sort(new UptimeComparator(sorting));
|
||||
|
||||
result = this;
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort by date time.
|
||||
*
|
||||
* @return the uptimes
|
||||
*/
|
||||
public Uptimes sortByDateTime()
|
||||
{
|
||||
Uptimes result;
|
||||
|
||||
result = sort(UptimeComparator.Sorting.DATETIME);
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* To time list.
|
||||
*
|
||||
* @return the string list
|
||||
*/
|
||||
public StringList toTimeList()
|
||||
{
|
||||
StringList result;
|
||||
|
||||
result = new StringList();
|
||||
for (Uptime uptime : this.sortByDateTime())
|
||||
{
|
||||
String line = String.format("%s %03d %s", uptime.getDateTime().format(DateTimeFormatter.ofPattern("hh:mm")), uptime.getCode(), uptime.getStatus().name());
|
||||
result.append(line);
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue