diff src/main/java/org/mpi/openmind/cache/WrapperService.java @ 69:bde6212babfd

106: translit normalization should ignore all '-equivalent chars Task-Url: https://it-dev.mpiwg-berlin.mpg.de/tracs/ismi/ticket/106
author casties
date Wed, 01 Feb 2017 19:54:12 +0100
parents 677492395dc0
children aeb29e362a67
line wrap: on
line diff
--- a/src/main/java/org/mpi/openmind/cache/WrapperService.java	Wed Feb 01 12:22:43 2017 +0100
+++ b/src/main/java/org/mpi/openmind/cache/WrapperService.java	Wed Feb 01 19:54:12 2017 +0100
@@ -25,6 +25,7 @@
 import org.mpi.openmind.repository.services.PersistenceService;
 import org.mpi.openmind.repository.services.utils.AttributeFilter;
 import org.mpi.openmind.repository.services.utils.EditIntent;
+import org.mpi.openmind.repository.utils.ArabicTranslitNormalizer;
 import org.mpi.openmind.repository.utils.ImportOM3Util;
 import org.mpi.openmind.repository.utils.NormalizerUtils;
 import org.mpi.openmind.repository.utils.RomanizationLoC;
@@ -151,26 +152,23 @@
         txLog.debug("** END remove entity: user="+user+" entity="+entity.toSmallString());
 	}
 
-	public Map<Entity, Attribute> searchEntityByAttributeFilter0(String term,
-			List<AttributeFilter> filters, int maxResults) {
+	public Map<Entity, Attribute> searchEntityByAttributeFilter(String term, List<AttributeFilter> filters,
+			int maxResults) {
 		Map<Entity, Attribute> map = new HashMap<Entity, Attribute>();
 		List<Long> usedIds = new ArrayList<Long>();
 
 		boolean mustBreak = false;
 		int count = 0;
 		if (StringUtils.isNotEmpty(term)) {
-			String normalizedTerm = NormalizerUtils.normalize(term);
+			// TODO: better normalization
+			String normalizedTerm = ArabicTranslitNormalizer.normalize(term);
 			for (AttributeFilter filter : filters) {
 				if (mustBreak) {
 					break;
 				}
-				for (Attribute att : getAttributesByDefByAttName(
-						filter.getEntObjectClass(), filter.getName(), -1)) {
-					if (!usedIds.contains(att.getSourceId())
-							&& StringUtils.isNotEmpty(att
-									.getNormalizedOwnValue())
-							&& att.getNormalizedOwnValue().contains(
-									normalizedTerm)) {
+				for (Attribute att : getAttributesByDefByAttName(filter.getEntObjectClass(), filter.getName(), -1)) {
+					if (!usedIds.contains(att.getSourceId()) && StringUtils.isNotEmpty(att.getNormalizedOwnValue())
+							&& att.getNormalizedOwnValue().contains(normalizedTerm)) {
 						map.put(getEntityById(att.getSourceId()), att);
 						usedIds.add(att.getSourceId());
 						count++;