blob: 30885dca0ec979e0b057496d939c5d84f2dfd615 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
package org.apache.tuscany.sca.domain.search.impl;
import java.lang.reflect.Array;
import org.apache.lucene.document.Field;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.domain.search.DocumentMap;
import org.apache.tuscany.sca.domain.search.DocumentProcessor;
public class PropertyDocumentProcessor implements DocumentProcessor {
public Document process(DocumentProcessor parentProcessor,
DocumentMap documents, Object object, Document doc, String parent) {
if (object instanceof Property) {
Property property = (Property) object;
String name = property.getName();
if (name != null && name.length() > 0) {
if (doc == null) {
doc = documents.get(name);
}
Object value = property.getValue();
if (value.getClass().isArray()) {
int arraySize = Array.getLength(value);
for (int i = 0; i < arraySize; i++) {
Object arrayValue = Array.get(value, i);
doc.add(new Field(SearchFields.VALUE_FIELD, arrayValue.toString(),
Field.Store.YES, Field.Index.ANALYZED));
}
} else {
doc.add(new Field(SearchFields.VALUE_FIELD, value.toString(),
Field.Store.YES, Field.Index.ANALYZED));
}
return doc == null ? FAKE_DOCUMENT : doc;
} else {
return FAKE_DOCUMENT;
}
}
throw new IllegalArgumentException();
}
public Object getDocumentKey(Object object) {
// TODO Auto-generated method stub
return null;
}
}
|