From ffeb6534c4ca008d965b22cfe185608bc0dd4483 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Mon, 8 Sep 2008 18:58:12 +0000 Subject: [PATCH] Cope with the goddamned broken generics implementation in JDK 1.5. --- .../com/samskivert/jdbc/depot/BindVisitor.java | 2 +- .../com/samskivert/jdbc/depot/BuildVisitor.java | 2 +- src/java/com/samskivert/jdbc/depot/Key.java | 16 +++++++++++----- .../jdbc/depot/expression/ExpressionVisitor.java | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/java/com/samskivert/jdbc/depot/BindVisitor.java b/src/java/com/samskivert/jdbc/depot/BindVisitor.java index abc2249..2ecf26a 100644 --- a/src/java/com/samskivert/jdbc/depot/BindVisitor.java +++ b/src/java/com/samskivert/jdbc/depot/BindVisitor.java @@ -71,7 +71,7 @@ public class BindVisitor implements ExpressionVisitor // nothing needed } - public void visit (Key.Expression key) + public void visit (Key.Expression key) { for (Comparable value : key.getValues()) { if (value != null) { diff --git a/src/java/com/samskivert/jdbc/depot/BuildVisitor.java b/src/java/com/samskivert/jdbc/depot/BuildVisitor.java index de8d74d..b3fc74c 100644 --- a/src/java/com/samskivert/jdbc/depot/BuildVisitor.java +++ b/src/java/com/samskivert/jdbc/depot/BuildVisitor.java @@ -94,7 +94,7 @@ public abstract class BuildVisitor implements ExpressionVisitor where.getWhereExpression().accept(this); } - public void visit (Key.Expression key) + public void visit (Key.Expression key) { Class pClass = key.getPersistentClass(); String[] keyFields = KeyUtil.getKeyFields(pClass); diff --git a/src/java/com/samskivert/jdbc/depot/Key.java b/src/java/com/samskivert/jdbc/depot/Key.java index fb153c0..eb21415 100644 --- a/src/java/com/samskivert/jdbc/depot/Key.java +++ b/src/java/com/samskivert/jdbc/depot/Key.java @@ -43,13 +43,17 @@ public class Key extends WhereClause { /** Handles the matching of the key columns to its bound values. This is needed so that we can * combine a buncy of keys into a {@link KeySet}. */ - public class Expression implements SQLExpression + public static class Expression implements SQLExpression { - public Class getPersistentClass () { - return Key.this.getPersistentClass(); + public Expression (Class pClass, List> values) { + _pClass = pClass; + _values = values; + } + public Class getPersistentClass () { + return _pClass; } public List> getValues () { - return Key.this.getValues(); + return _values; } public void accept (ExpressionVisitor builder) { builder.visit(this); @@ -57,6 +61,8 @@ public class Key extends WhereClause public void addClasses (Collection> classSet) { classSet.add(getPersistentClass()); } + protected Class _pClass; + protected List> _values; } /** @@ -148,7 +154,7 @@ public class Key extends WhereClause // from WhereClause public SQLExpression getWhereExpression () { - return new Expression(); + return new Expression(_pClass, _values); } // from SQLExpression diff --git a/src/java/com/samskivert/jdbc/depot/expression/ExpressionVisitor.java b/src/java/com/samskivert/jdbc/depot/expression/ExpressionVisitor.java index 65f9216..a629b71 100644 --- a/src/java/com/samskivert/jdbc/depot/expression/ExpressionVisitor.java +++ b/src/java/com/samskivert/jdbc/depot/expression/ExpressionVisitor.java @@ -69,7 +69,7 @@ public interface ExpressionVisitor public void visit (LiteralExp literalExp); public void visit (ValueExp valueExp); public void visit (WhereClause where); - public void visit (Key.Expression key); + public void visit (Key.Expression key); public void visit (MultiKey key); public void visit (Exists exists); public void visit (SelectClause selectClause);