From 7d544d6b11dc6494170c293e6897ed6d72612d06 Mon Sep 17 00:00:00 2001 From: adrianocrestani Date: Sun, 5 Jul 2009 07:04:56 +0000 Subject: applying patch tuscany_2552_phillipe_ramalho_07_04_2009.patch.txt from TUSCANY-2552 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@791203 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/sca/domain/search/impl/Document.java | 47 ++++++++++++++++++---- 1 file changed, 39 insertions(+), 8 deletions(-) (limited to 'branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java') diff --git a/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java b/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java index 8a1aac2cd5..02cf097874 100644 --- a/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java +++ b/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java @@ -3,29 +3,52 @@ package org.apache.tuscany.sca.domain.search.impl; import java.util.Collection; import java.util.Collections; import java.util.Hashtable; +import java.util.LinkedList; import org.apache.lucene.document.Fieldable; public class Document { private Hashtable> fieldablesTable = new Hashtable>(); + + private Hashtable> readerMap = new Hashtable>();; public Document() { // empty constructor } public void add(Fieldable fieldable) { - Hashtable fieldables = this.fieldablesTable - .get(fieldable.name()); + + String strValue = fieldable.stringValue(); + + if (strValue != null) { + + Hashtable fieldables = this.fieldablesTable + .get(fieldable.name()); + + if (fieldables == null) { + fieldables = new Hashtable(); + this.fieldablesTable.put(fieldable.name(), fieldables); - if (fieldables == null) { - fieldables = new Hashtable(); - this.fieldablesTable.put(fieldable.name(), fieldables); + } + + fieldables.put(strValue, fieldable); + + } else { + + LinkedList fieldables = this.readerMap + .get(fieldable.name()); + + if (fieldables == null) { + fieldables = new LinkedList(); + this.readerMap.put(fieldable.name(), fieldables); + } + + fieldables.add(fieldable); + } - fieldables.put(fieldable.stringValue(), fieldable); - } public org.apache.lucene.document.Document createLuceneDocument() { @@ -39,6 +62,14 @@ public class Document { } + for (LinkedList fieldables : this.readerMap.values()) { + + for (Fieldable fieldable : fieldables) { + doc.add(fieldable); + } + + } + return doc; } @@ -50,7 +81,7 @@ public class Document { return fieldables.keySet(); } - return Collections.EMPTY_LIST; + return Collections.emptyList(); } -- cgit v1.2.3