Author: ssmiweve
Date: 2009-07-14 11:10:04 +0200 (Tue, 14 Jul 2009)
New Revision: 7232
Modified:
branches/2.18/generic.sesam/result-handler-control/src/main/java/no/sesat/search/result/handler/FieldChooser.java
Log:
* Will copy objects [using addField(.., getObjectField(..))] if the field's
value is not a string.
* For fields with a string value addObjectField(.., getField(..)) will still
be used.
(This breaks the API where clients were dependent on a ClassCastException being
thrown :-)
Modified:
branches/2.18/generic.sesam/result-handler-control/src/main/java/no/sesat/search/result/handler/FieldChooser.java
===================================================================
---
branches/2.18/generic.sesam/result-handler-control/src/main/java/no/sesat/search/result/handler/FieldChooser.java
2009-07-14 09:02:19 UTC (rev 7231)
+++
branches/2.18/generic.sesam/result-handler-control/src/main/java/no/sesat/search/result/handler/FieldChooser.java
2009-07-14 09:10:04 UTC (rev 7232)
@@ -1,4 +1,4 @@
-/* Copyright (2006-2008) Schibsted ASA
+/* Copyright (2006-2009) Schibsted ASA
* This file is part of SESAT.
*
* SESAT is free software: you can redistribute it and/or modify
@@ -27,6 +27,8 @@
/** Copies the first found value in the list of from fields into the target
field.
*
+ * Will copy objects [using addField(.., getObjectField(..))] if the field's
value is not a string.
+ * For fields with a string value addObjectField(.., getField(..)) will still
be used.
*
* @version <tt>$Id$</tt>
*/
@@ -34,13 +36,8 @@
private static final Logger LOG = Logger.getLogger(FieldChooser.class);
- private final ClassLoader cl =
FieldChooserResultHandlerConfig.class.getClassLoader();
private final FieldChooserResultHandlerConfig config;
- /**
- *
- * @param config
- */
public FieldChooser(final ResultHandlerConfig config) {
final ClassLoader cl = config.getClass().getClassLoader();
this.config = (FieldChooserResultHandlerConfig) config;
@@ -55,20 +52,24 @@
private void chooseField(final ResultList<ResultItem> searchResult, final
Collection<String> fields) {
- if (searchResult != null) {
+ if (null != searchResult) {
for (ResultItem i : searchResult.getResults()) {
ResultItem item = i;
for (String field : fields) {
- if (item.getField(field) != null) {
- item = item.addField(config.getTarget(),
item.getField(field));
+ if (null != item.getObjectField(field)) {
+ if(item.getObjectField(field) instanceof String){
+ item = item.addField(config.getTarget(),
item.getField(field));
+ }else{
+ item = item.addObjectField(config.getTarget(),
item.getObjectField(field));
+ }
break;
}
}
- if (config.getDefaultValue() != null &&
item.getField(config.getTarget()) == null) {
+ if (null != config.getDefaultValue() && null ==
item.getField(config.getTarget())) {
item = item.addField(config.getTarget(),
config.getDefaultValue());
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits