From 619ea13d89a257c7ae0a8e3e7700e5eee760287c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 25 Jan 2011 12:08:53 +0000 Subject: [PATCH] added template method for toString() conversion --- .../mysema/query/lucene/LuceneSerializer.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java index d19307bb1..456d3f29d 100644 --- a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java +++ b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java @@ -210,7 +210,9 @@ public class LuceneSerializer { Collection values = (Collection) ((Constant) operation.getArg(1)).getConstant(); BooleanQuery bq = new BooleanQuery(); for (Object value : values) { - bq.add(eq(field, tokenized ? StringUtils.split(value.toString()) : new String[] { value.toString() }, metadata), Occur.SHOULD); + // FIXME : use proper splitting + String str = convert(value); + bq.add(eq(field, tokenized ? StringUtils.split(str) : new String[] {str }, metadata), Occur.SHOULD); } return bq; } @@ -405,11 +407,21 @@ public class LuceneSerializer { if (value == null){ throw new ParamNotSetException((ParamExpression) expr); } - return split(expr, tokenized, value.toString()); + return split(expr, tokenized, convert(value)); }else{ - return split(expr, tokenized, expr.toString()); + return split(expr, tokenized, convert(expr)); } } + + /** + * template method, override to customize + * + * @param object + * @return + */ + protected String convert(Object object){ + return object.toString(); + } private String[] createEscapedTerms(Expression expr, boolean tokenized, QueryMetadata metadata) { if (expr instanceof ParamExpression){ @@ -417,9 +429,9 @@ public class LuceneSerializer { if (value == null){ throw new ParamNotSetException((ParamExpression) expr); } - return split(expr, tokenized, QueryParser.escape(value.toString())); + return split(expr, tokenized, QueryParser.escape(convert(value))); }else{ - return split(expr, tokenized, QueryParser.escape(expr.toString())); + return split(expr, tokenized, QueryParser.escape(convert(expr))); } }