Improved federation service count.
This commit is contained in:
parent
92f6674bfc
commit
c98fc07e1b
8 changed files with 449 additions and 88 deletions
|
@ -386,6 +386,23 @@ public class Federation extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member organizations.
|
||||||
|
*
|
||||||
|
* @param year
|
||||||
|
* the year
|
||||||
|
* @return the member organizations
|
||||||
|
*/
|
||||||
|
public Organizations getMemberOrganizations(final Year year)
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = this.organizations.filterMemberFor(year);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the metric month values all.
|
* Gets the metric month values all.
|
||||||
*
|
*
|
||||||
|
@ -506,6 +523,40 @@ public class Federation extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the service count by.
|
||||||
|
*
|
||||||
|
* @param year
|
||||||
|
* the year
|
||||||
|
* @return the service count by
|
||||||
|
*/
|
||||||
|
public long getServiceCountBy(final Year year)
|
||||||
|
{
|
||||||
|
long result;
|
||||||
|
|
||||||
|
Organizations organizations = this.organizations.filterMemberFor(year);
|
||||||
|
|
||||||
|
result = 0;
|
||||||
|
for (Organization organization : organizations)
|
||||||
|
{
|
||||||
|
for (Service service : organization.getServices().getBy(year))
|
||||||
|
{
|
||||||
|
Year memberStart = organization.getMemberStartYear();
|
||||||
|
Year memberEnd = organization.getMemberEndYear();
|
||||||
|
Year serviceStart = service.getStartYear();
|
||||||
|
Year serviceEnd = service.getEndYear();
|
||||||
|
|
||||||
|
if (StatoolInfosUtils.overlapp(memberStart, memberEnd, serviceStart, serviceEnd))
|
||||||
|
{
|
||||||
|
result += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the all services.
|
* Gets the all services.
|
||||||
*
|
*
|
||||||
|
|
|
@ -501,10 +501,7 @@ public class Organization extends PathPropertyList
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
LocalDate startDate = StatoolInfosUtils.parseDate(getMemberStartDate());
|
result = StatoolInfosUtils.toHumanDuration(getMemberStartDate(), getMemberEndDate());
|
||||||
LocalDate endDate = StatoolInfosUtils.parseDate(getMemberEndDate());
|
|
||||||
|
|
||||||
result = StatoolInfosUtils.toHumanDuration(startDate, endDate);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
@ -515,7 +512,39 @@ public class Organization extends PathPropertyList
|
||||||
*
|
*
|
||||||
* @return the member end date
|
* @return the member end date
|
||||||
*/
|
*/
|
||||||
public String getMemberEndDate()
|
public LocalDate getMemberEndDate()
|
||||||
|
{
|
||||||
|
LocalDate result;
|
||||||
|
|
||||||
|
result = getDate("organization.memberof." + this.federation.getName() + ".enddate");
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member end date.
|
||||||
|
*
|
||||||
|
* @param entityName
|
||||||
|
* the entity name
|
||||||
|
* @return the member end date
|
||||||
|
*/
|
||||||
|
public LocalDate getMemberEndDate(final String entityName)
|
||||||
|
{
|
||||||
|
LocalDate result;
|
||||||
|
|
||||||
|
result = getDate("organization.memberof." + entityName + ".enddate");
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member end date.
|
||||||
|
*
|
||||||
|
* @return the member end date
|
||||||
|
*/
|
||||||
|
public String getMemberEndDateValue()
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
@ -525,12 +554,67 @@ public class Organization extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member end year.
|
||||||
|
*
|
||||||
|
* @return the member end year
|
||||||
|
*/
|
||||||
|
public Year getMemberEndYear()
|
||||||
|
{
|
||||||
|
Year result;
|
||||||
|
|
||||||
|
LocalDate date = getMemberEndDate();
|
||||||
|
if (date == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = Year.from(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the member start date.
|
* Gets the member start date.
|
||||||
*
|
*
|
||||||
* @return the member start date
|
* @return the member start date
|
||||||
*/
|
*/
|
||||||
public String getMemberStartDate()
|
public LocalDate getMemberStartDate()
|
||||||
|
{
|
||||||
|
LocalDate result;
|
||||||
|
|
||||||
|
result = getDate("organization.memberof." + this.federation.getName() + ".startdate");
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member start date.
|
||||||
|
*
|
||||||
|
* @param entityName
|
||||||
|
* the entity name
|
||||||
|
* @return the member start date
|
||||||
|
*/
|
||||||
|
public LocalDate getMemberStartDate(final String entityName)
|
||||||
|
{
|
||||||
|
LocalDate result;
|
||||||
|
|
||||||
|
result = getDate("organization.memberof." + entityName + ".startdate");
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member start date.
|
||||||
|
*
|
||||||
|
* @return the member start date
|
||||||
|
*/
|
||||||
|
public String getMemberStartDateValue()
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
|
@ -540,6 +624,29 @@ public class Organization extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the member start year.
|
||||||
|
*
|
||||||
|
* @return the member start year
|
||||||
|
*/
|
||||||
|
public Year getMemberStartYear()
|
||||||
|
{
|
||||||
|
Year result;
|
||||||
|
|
||||||
|
LocalDate date = getMemberStartDate();
|
||||||
|
if (date == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = Year.from(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the status member of.
|
* Gets the status member of.
|
||||||
*
|
*
|
||||||
|
@ -1224,6 +1331,51 @@ public class Organization extends PathPropertyList
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if is member.
|
||||||
|
*
|
||||||
|
* @param year
|
||||||
|
* the year
|
||||||
|
* @return true, if is member
|
||||||
|
*/
|
||||||
|
public boolean isMember(final Year year)
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
|
||||||
|
if (year == null)
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Year startYear = getMemberStartYear();
|
||||||
|
if (startYear == null)
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Year endYear = getMemberEndYear();
|
||||||
|
if (endYear == null)
|
||||||
|
{
|
||||||
|
endYear = Year.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((year.isBefore(startYear)) || (year.isAfter(endYear)))
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if is valid.
|
* Checks if is valid.
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
package fr.devinsy.statoolinfos.core;
|
package fr.devinsy.statoolinfos.core;
|
||||||
|
|
||||||
|
import java.time.Year;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
|
@ -182,6 +183,31 @@ public class Organizations extends ArrayList<Organization>
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter member for.
|
||||||
|
*
|
||||||
|
* @param year
|
||||||
|
* the year
|
||||||
|
* @return the organizations
|
||||||
|
*/
|
||||||
|
public Organizations filterMemberFor(final Year year)
|
||||||
|
{
|
||||||
|
Organizations result;
|
||||||
|
|
||||||
|
result = new Organizations();
|
||||||
|
|
||||||
|
for (Organization organization : this)
|
||||||
|
{
|
||||||
|
if (organization.isMember(year))
|
||||||
|
{
|
||||||
|
result.add(organization);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the active service count.
|
* Gets the active service count.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020 Christian Pierre MOMON <christian@momon.org>
|
* Copyright (C) 2020-2022 Christian Pierre MOMON <christian@momon.org>
|
||||||
*
|
*
|
||||||
* This file is part of StatoolInfos, simple service statistics tool.
|
* This file is part of StatoolInfos, simple service statistics tool.
|
||||||
*
|
*
|
||||||
|
@ -18,6 +18,8 @@
|
||||||
*/
|
*/
|
||||||
package fr.devinsy.statoolinfos.core;
|
package fr.devinsy.statoolinfos.core;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.Year;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
|
@ -40,6 +42,42 @@ public class Services extends ArrayList<Service>
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count by year.
|
||||||
|
*
|
||||||
|
* @param year
|
||||||
|
* the year
|
||||||
|
* @return the long
|
||||||
|
*/
|
||||||
|
public long countBy(final Year year)
|
||||||
|
{
|
||||||
|
long result;
|
||||||
|
|
||||||
|
result = 0;
|
||||||
|
Year now = Year.now();
|
||||||
|
for (Service service : this)
|
||||||
|
{
|
||||||
|
Year start = service.getStartYear();
|
||||||
|
Year end = service.getEndYear();
|
||||||
|
|
||||||
|
if (start != null)
|
||||||
|
{
|
||||||
|
if (end == null)
|
||||||
|
{
|
||||||
|
end = now;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((!start.isAfter(year) && (!end.isBefore(year))))
|
||||||
|
{
|
||||||
|
result += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the by.
|
* Gets the by.
|
||||||
*
|
*
|
||||||
|
@ -117,6 +155,95 @@ public class Services extends ArrayList<Service>
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the by.
|
||||||
|
*
|
||||||
|
* @param year
|
||||||
|
* the year
|
||||||
|
* @return the by
|
||||||
|
*/
|
||||||
|
public Services getBy(final Year year)
|
||||||
|
{
|
||||||
|
Services result;
|
||||||
|
|
||||||
|
result = new Services();
|
||||||
|
|
||||||
|
if (year != null)
|
||||||
|
{
|
||||||
|
for (Service service : this)
|
||||||
|
{
|
||||||
|
Year startYear = service.getStartYear();
|
||||||
|
Year endYear = service.getEndYear();
|
||||||
|
if (endYear == null)
|
||||||
|
{
|
||||||
|
endYear = Year.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((startYear != null) && (!year.isBefore(startYear)) && (!year.isAfter(endYear)))
|
||||||
|
{
|
||||||
|
result.add(service);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the older.
|
||||||
|
*
|
||||||
|
* @return the older
|
||||||
|
*/
|
||||||
|
public Service getOldestService()
|
||||||
|
{
|
||||||
|
Service result;
|
||||||
|
|
||||||
|
result = null;
|
||||||
|
LocalDate oldestDate = null;
|
||||||
|
for (Service current : this)
|
||||||
|
{
|
||||||
|
LocalDate date = current.getStartDate();
|
||||||
|
|
||||||
|
if (date != null)
|
||||||
|
{
|
||||||
|
LocalDate currentDate = current.getStartDate();
|
||||||
|
if ((result == null) || (currentDate.isBefore(oldestDate)))
|
||||||
|
{
|
||||||
|
result = current;
|
||||||
|
oldestDate = currentDate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the oldest year.
|
||||||
|
*
|
||||||
|
* @return the oldest year
|
||||||
|
*/
|
||||||
|
public Year getOldestStartYear()
|
||||||
|
{
|
||||||
|
Year result;
|
||||||
|
|
||||||
|
Service oldestService = getOldestService();
|
||||||
|
|
||||||
|
if (oldestService == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = oldestService.getStartYear();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reverse.
|
* Reverse.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2021 Christian Pierre MOMON <christian@momon.org>
|
* Copyright (C) 2020-2022 Christian Pierre MOMON <christian@momon.org>
|
||||||
*
|
*
|
||||||
* This file is part of StatoolInfos, simple service statistics tool.
|
* This file is part of StatoolInfos, simple service statistics tool.
|
||||||
*
|
*
|
||||||
|
@ -27,6 +27,7 @@ import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.Period;
|
import java.time.Period;
|
||||||
|
import java.time.Year;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeParseException;
|
import java.time.format.DateTimeParseException;
|
||||||
|
@ -206,6 +207,63 @@ public class StatoolInfosUtils
|
||||||
return new Date().getTime();
|
return new Date().getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overlapp.
|
||||||
|
*
|
||||||
|
* @param start1
|
||||||
|
* the start 1
|
||||||
|
* @param end1
|
||||||
|
* the end 1
|
||||||
|
* @param start2
|
||||||
|
* the start 2
|
||||||
|
* @param end2
|
||||||
|
* the end 2
|
||||||
|
* @return true, if successful
|
||||||
|
*/
|
||||||
|
public static boolean overlapp(final Year start1, final Year end1, final Year start2, final Year end2)
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
|
||||||
|
if ((start1 == null) || (start2 == null))
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Year end11;
|
||||||
|
if (end1 == null)
|
||||||
|
{
|
||||||
|
end11 = Year.now();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
end11 = end1;
|
||||||
|
}
|
||||||
|
|
||||||
|
Year end22;
|
||||||
|
if (end2 == null)
|
||||||
|
{
|
||||||
|
end22 = Year.now();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
end22 = end2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((end22.isBefore(start1)) || (start2.isAfter(end11)))
|
||||||
|
{
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses the date.
|
* Parses the date.
|
||||||
*
|
*
|
||||||
|
@ -235,6 +293,10 @@ public class StatoolInfosUtils
|
||||||
{
|
{
|
||||||
result = LocalDate.parse("01/" + date, DateTimeFormatter.ofPattern("dd/MM/yyyy"));
|
result = LocalDate.parse("01/" + date, DateTimeFormatter.ofPattern("dd/MM/yyyy"));
|
||||||
}
|
}
|
||||||
|
else if (date.matches("\\d{4}-\\d{2}"))
|
||||||
|
{
|
||||||
|
result = LocalDate.parse(date + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = null;
|
result = null;
|
||||||
|
|
|
@ -1451,7 +1451,23 @@ public class ChartHtmlizer
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
result = htmlizeServiceCountYearChart(federation.getServices(), federation.getStartYear());
|
BarChart chart;
|
||||||
|
|
||||||
|
chart = new BarChart("Nombre de services");
|
||||||
|
chart.addDataset("Services");
|
||||||
|
|
||||||
|
Year current = federation.getStartYear();
|
||||||
|
Year now = Year.now();
|
||||||
|
while (!current.isAfter(now))
|
||||||
|
{
|
||||||
|
long count = federation.getServiceCountBy(current);
|
||||||
|
|
||||||
|
chart.add(String.valueOf(current), count, ChartColor.YELLOW);
|
||||||
|
|
||||||
|
current = current.plusYears(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
result = BarChartView.build(chart);
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
@ -1531,36 +1547,11 @@ public class ChartHtmlizer
|
||||||
|
|
||||||
if (first != null)
|
if (first != null)
|
||||||
{
|
{
|
||||||
int now = LocalDate.now().getYear();
|
int now = Year.now().getValue();
|
||||||
int current = first;
|
int current = first;
|
||||||
while (current <= now)
|
while (current <= now)
|
||||||
{
|
{
|
||||||
long count = 0;
|
long count = services.countBy(Year.of(current));
|
||||||
for (Service service : services)
|
|
||||||
{
|
|
||||||
LocalDate startDate = service.getStartDate();
|
|
||||||
LocalDate endDate = service.getEndDate();
|
|
||||||
|
|
||||||
if (startDate != null)
|
|
||||||
{
|
|
||||||
int start = startDate.getYear();
|
|
||||||
int end;
|
|
||||||
if (endDate == null)
|
|
||||||
{
|
|
||||||
end = now;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
end = endDate.getYear();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((current >= start) && (current <= end))
|
|
||||||
{
|
|
||||||
count += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
chart.add(String.valueOf(current), count, ChartColor.YELLOW);
|
chart.add(String.valueOf(current), count, ChartColor.YELLOW);
|
||||||
|
|
||||||
current += 1;
|
current += 1;
|
||||||
|
|
|
@ -84,10 +84,10 @@ public class OrganizationHeaderView
|
||||||
data.setContent("organizationMemberOfWord", ":");
|
data.setContent("organizationMemberOfWord", ":");
|
||||||
}
|
}
|
||||||
|
|
||||||
data.setContent("organizationMemberStartDate", StringUtils.defaultIfBlank(organization.getMemberStartDate(), "n/a"));
|
data.setContent("organizationMemberStartDate", StringUtils.defaultIfBlank(organization.getMemberStartDateValue(), "n/a"));
|
||||||
data.setContent("organizationMemberEndDate", StringUtils.defaultIfBlank(organization.getMemberEndDate(), "n/a"));
|
data.setContent("organizationMemberEndDate", StringUtils.defaultIfBlank(organization.getMemberEndDateValue(), "n/a"));
|
||||||
data.setContent("organizationMemberAge", StringUtils.defaultIfBlank(organization.getMemberAge(), "n/a"));
|
data.setContent("organizationMemberAge", StringUtils.defaultIfBlank(organization.getMemberAge(), "n/a"));
|
||||||
if (StringUtils.isBlank(organization.getMemberEndDate()))
|
if (StringUtils.isBlank(organization.getMemberEndDateValue()))
|
||||||
{
|
{
|
||||||
data.setAttribute("organizationMemberEndDateData", "style", "display: none;");
|
data.setAttribute("organizationMemberEndDateData", "style", "display: none;");
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,8 +24,6 @@ import java.net.URL;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.Year;
|
import java.time.Year;
|
||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.time.format.DateTimeParseException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
@ -315,53 +313,7 @@ public class PathPropertyList extends ArrayList<PathProperty> implements PathPro
|
||||||
{
|
{
|
||||||
LocalDate result;
|
LocalDate result;
|
||||||
|
|
||||||
String value = get(path);
|
result = StatoolInfosUtils.parseDate(get(path));
|
||||||
if (value == null)
|
|
||||||
{
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
String pattern;
|
|
||||||
if (value.matches("\\d{1,2}/\\d{1,2}/\\d{4}"))
|
|
||||||
{
|
|
||||||
pattern = "dd/MM/yyyy";
|
|
||||||
}
|
|
||||||
else if (value.matches("\\d{4}-\\d{2}-\\d{2}"))
|
|
||||||
{
|
|
||||||
pattern = "yyyy-MM-dd";
|
|
||||||
}
|
|
||||||
else if (value.matches("\\d{1,2}/\\d{4}"))
|
|
||||||
{
|
|
||||||
value = "01/" + value;
|
|
||||||
pattern = "dd/MM/yyyy";
|
|
||||||
}
|
|
||||||
else if (value.matches("\\d{4}-\\d{2}"))
|
|
||||||
{
|
|
||||||
value = value + "-01";
|
|
||||||
pattern = "yyyy-MM-dd";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pattern = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pattern == null)
|
|
||||||
{
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
result = LocalDate.parse(value, DateTimeFormatter.ofPattern(pattern));
|
|
||||||
}
|
|
||||||
catch (DateTimeParseException exception)
|
|
||||||
{
|
|
||||||
result = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in a new issue