diff options
author | adrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68> | 2009-07-05 07:04:56 +0000 |
---|---|---|
committer | adrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68> | 2009-07-05 07:04:56 +0000 |
commit | 7d544d6b11dc6494170c293e6897ed6d72612d06 (patch) | |
tree | 18f24b6d896fcf0c8cfa5a6a041df082dd7672f3 /branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java | |
parent | b4f758f88e8c97be870ba86080d7f0adb6dafb65 (diff) |
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
Diffstat (limited to 'branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java')
-rw-r--r-- | branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java | 47 |
1 files changed, 39 insertions, 8 deletions
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<String, Hashtable<String, Fieldable>> fieldablesTable = new Hashtable<String, Hashtable<String, Fieldable>>(); + + private Hashtable<String, LinkedList<Fieldable>> readerMap = new Hashtable<String, LinkedList<Fieldable>>();; public Document() { // empty constructor } public void add(Fieldable fieldable) { - Hashtable<String, Fieldable> fieldables = this.fieldablesTable - .get(fieldable.name()); + + String strValue = fieldable.stringValue(); + + if (strValue != null) { + + Hashtable<String, Fieldable> fieldables = this.fieldablesTable + .get(fieldable.name()); + + if (fieldables == null) { + fieldables = new Hashtable<String, Fieldable>(); + this.fieldablesTable.put(fieldable.name(), fieldables); - if (fieldables == null) { - fieldables = new Hashtable<String, Fieldable>(); - this.fieldablesTable.put(fieldable.name(), fieldables); + } + + fieldables.put(strValue, fieldable); + + } else { + + LinkedList<Fieldable> fieldables = this.readerMap + .get(fieldable.name()); + + if (fieldables == null) { + fieldables = new LinkedList<Fieldable>(); + 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<Fieldable> 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(); } |