From dd73e4c2b6fb632b02ee9077ea51ea9c45f073f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Fri, 24 Apr 2009 08:40:57 +0000 Subject: [PATCH] --- .../query/serialization/BaseSerializer.java | 1 + .../query/serialization/OperationPattern.java | 60 +++++++++++++++++++ .../serialization/OperationPatterns.java | 1 + 3 files changed, 62 insertions(+) create mode 100644 querydsl-core/src/main/java/com/mysema/query/serialization/OperationPattern.java diff --git a/querydsl-core/src/main/java/com/mysema/query/serialization/BaseSerializer.java b/querydsl-core/src/main/java/com/mysema/query/serialization/BaseSerializer.java index 30ff0d446..a94c9a17a 100644 --- a/querydsl-core/src/main/java/com/mysema/query/serialization/BaseSerializer.java +++ b/querydsl-core/src/main/java/com/mysema/query/serialization/BaseSerializer.java @@ -159,6 +159,7 @@ public abstract class BaseSerializer> ex } strings[i] = toString(args.get(i),wrap); } + // TODO : use faster custom rendering appendOperationResult(operator, String.format(pattern, strings)); } diff --git a/querydsl-core/src/main/java/com/mysema/query/serialization/OperationPattern.java b/querydsl-core/src/main/java/com/mysema/query/serialization/OperationPattern.java new file mode 100644 index 000000000..716fa8092 --- /dev/null +++ b/querydsl-core/src/main/java/com/mysema/query/serialization/OperationPattern.java @@ -0,0 +1,60 @@ +package com.mysema.query.serialization; + +import java.util.ArrayList; +import java.util.List; + +import com.mysema.util.Assert; + +/** + * PatternElement provides + * + * @author tiwe + * @version $Id$ + */ +public class OperationPattern { + +// private static final Pattern patter + + private final String pattern; + + private final List elements = new ArrayList(); + + public OperationPattern(String pattern){ + this.pattern = Assert.notNull(pattern); + } + + public int hashCode(){ + return pattern.hashCode(); + } + + public boolean equals(Object o){ + if (o == this){ + return true; + }else if (o instanceof OperationPattern){ + return ((OperationPattern)o).pattern.equals(pattern); + }else{ + return false; + } + } + + public class Element{ + + private final int index; + + private final String text; + + public Element(int index, String text){ + this.index = index; + this.text = text; + } + + public int getIndex() { + return index; + } + + public String getText() { + return text; + } + + } +} diff --git a/querydsl-core/src/main/java/com/mysema/query/serialization/OperationPatterns.java b/querydsl-core/src/main/java/com/mysema/query/serialization/OperationPatterns.java index fdfcc3e04..2d3ee61d5 100644 --- a/querydsl-core/src/main/java/com/mysema/query/serialization/OperationPatterns.java +++ b/querydsl-core/src/main/java/com/mysema/query/serialization/OperationPatterns.java @@ -20,6 +20,7 @@ import com.mysema.query.grammar.types.PathMetadata.PathType; * @author tiwe * @version $Id$ */ +// TODO : replace String.format based expressions with custom expressions public abstract class OperationPatterns{ private final Map,String> patterns = new HashMap,String>();