Fixed categories compare.

This commit is contained in:
Christian P. MOMON 2022-11-10 10:55:48 +01:00
parent a1e9949ca5
commit 003fb306a0
4 changed files with 48 additions and 4 deletions

View file

@ -54,7 +54,7 @@ public class Categories extends ArrayList<Category>
for (Category category : this) for (Category category : this)
{ {
if (category.getSoftwares().containsAnyIgnoreCase(softwareName)) if (category.matchesSoftware(softwareName))
{ {
result.add(category); result.add(category);
} }
@ -84,7 +84,7 @@ public class Categories extends ArrayList<Category>
{ {
Category category = iterator.next(); Category category = iterator.next();
if (category.getSoftwares().containsIgnoreCase(softwareName)) if (category.matchesSoftware(softwareName))
{ {
ended = true; ended = true;
result = true; result = true;

View file

@ -18,6 +18,8 @@
*/ */
package fr.devinsy.statoolinfos.core; package fr.devinsy.statoolinfos.core;
import java.util.Iterator;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import fr.devinsy.strings.StringList; import fr.devinsy.strings.StringList;
@ -139,6 +141,48 @@ public class Category
return result; return result;
} }
/**
* Matches.
*
* @param softwareName
* the software name
* @return true, if successful
*/
public boolean matchesSoftware(final String softwareName)
{
boolean result;
String target = StringUtils.stripAccents(softwareName).replaceAll("[\\W\\s]", "");
boolean ended = false;
Iterator<String> iterator = this.softwares.iterator();
result = false;
while (!ended)
{
if (iterator.hasNext())
{
String source1 = iterator.next();
String source2 = StringUtils.stripAccents(source1).replaceAll("[\\W\\s]", "");
System.out.println("<" + source1 + "/" + source2 + "><" + softwareName + "/" + target + "> " + StringUtils.equalsIgnoreCase(target, source1));
if (StringUtils.equalsIgnoreCase(target, source2))
{
ended = true;
result = true;
}
}
else
{
ended = true;
result = false;
}
}
//
return result;
}
public void setDescription(final String description) public void setDescription(final String description)
{ {
this.description = description; this.description = description;

View file

@ -92,7 +92,7 @@ public class StatAgent
for (Service service : federation.getServices()) for (Service service : federation.getServices())
{ {
String softwareName = service.getSoftwareName(); String softwareName = service.getSoftwareName();
if (category.getSoftwares().containsIgnoreCase(softwareName)) if (category.matchesSoftware(softwareName))
{ {
stat.incServiceCount(); stat.incServiceCount();
YearMonth month = YearMonth.now().minusMonths(1); YearMonth month = YearMonth.now().minusMonths(1);

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020-2022 Christian Pierre MOMON <christian@momon.org> * Copyright (C) 2020 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.
* *