summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java
diff options
context:
space:
mode:
authoradrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68>2009-07-05 07:04:56 +0000
committeradrianocrestani <adrianocrestani@13f79535-47bb-0310-9956-ffa450edef68>2009-07-05 07:04:56 +0000
commit7d544d6b11dc6494170c293e6897ed6d72612d06 (patch)
tree18f24b6d896fcf0c8cfa5a6a041df082dd7672f3 /branches/sca-java-1.x/modules/domain-search/src/main/java/org/apache/tuscany/sca/domain/search/impl/Document.java
parentb4f758f88e8c97be870ba86080d7f0adb6dafb65 (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.java47
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();
}