Author: ppoddar
Date: Wed Jun 24 15:48:04 2009
New Revision: 788058

URL: http://svn.apache.org/viewvc?rev=788058&view=rev
Log:
OPENJPA-1143: refactor method signature to generic type CriteriaQuery<?> as 
input argument

Modified:
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterImpl.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
    
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ExpressionImpl.java
 Wed Jun 24 15:48:04 2009
@@ -40,13 +40,13 @@
     implements Expression<X> {
 
     Value toValue(ExpressionFactory factory, MetamodelImpl model,
-        CriteriaQueryImpl q) {
+        CriteriaQueryImpl<?> q) {
         throw new AbstractMethodError(this.getClass().getName());
     }
     
     org.apache.openjpa.kernel.exps.Expression toKernelExpression(
         ExpressionFactory factory, MetamodelImpl model,
-        CriteriaQueryImpl q) {
+        CriteriaQueryImpl<?> q) {
         throw new AbstractMethodError(this.getClass().getName());
     }
     

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Expressions.java
 Wed Jun 24 15:48:04 2009
@@ -126,7 +126,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.abs(Expressions.toValue(e, factory, model, q));
         }
     }
@@ -145,7 +145,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value v = factory.count(Expressions.toValue(e, factory, model, q));
             return _distinct ? factory.distinct(v) : v;
         }
@@ -158,7 +158,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.avg(Expressions.toValue(e, factory, model, q));
         }
     }
@@ -170,7 +170,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.sqrt(Expressions.toValue(e, factory, model, q));
         }
     }
@@ -182,7 +182,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.max(Expressions.toValue(e, factory, model, q));
         }
     }
@@ -194,7 +194,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.min(Expressions.toValue(e, factory, model, q));
         }
     }
@@ -210,7 +210,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.size(Expressions.toValue(e, factory, model, q));
         }
     }
@@ -224,7 +224,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.type(Expressions.toValue(e, factory, model, q));
         }
     }
@@ -237,7 +237,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.cast(Expressions.toValue(e, factory, model, q), b);
         }
     }
@@ -256,7 +256,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.concat(
                 Expressions.toValue(e1, factory, model, q), 
                 Expressions.toValue(e2, factory, model, q));
@@ -292,7 +292,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return JPQLExpressionBuilder.convertSubstringArguments(factory, 
                 Expressions.toValue(e, factory, model, q), 
                 from == null ? null : from.toValue(factory, model, q), 
@@ -332,7 +332,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value locateSearch = path.toValue(factory, model, q);
             Value locateFromIndex = (from == null ? 
                 null : Expressions.toValue(from, factory, model, q));
@@ -382,7 +382,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Boolean spec = null;
             if (ts != null) {
                 switch (ts) {
@@ -418,7 +418,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return (e2 == null) 
             ?   factory.sum(Expressions.toValue(e1, factory, model, q))
             :   factory.add(
@@ -444,7 +444,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.multiply(
                 Expressions.toValue(e1, factory, model, q), 
                 Expressions.toValue(e2, factory, model, q));
@@ -468,7 +468,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.subtract(
                 Expressions.toValue(e1, factory, model, q), 
                 Expressions.toValue(e2, factory, model, q));
@@ -493,7 +493,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.divide(
                 Expressions.toValue(e1, factory, model, q), 
                 Expressions.toValue(e2, factory, model, q));
@@ -513,7 +513,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.mod(
                 Expressions.toValue(e1, factory, model, q), 
                 Expressions.toValue(e2, factory, model, q));
@@ -527,7 +527,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.getCurrentDate();
         }
     }
@@ -539,7 +539,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.getCurrentTime();
         }
     }
@@ -552,7 +552,7 @@
 
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.getCurrentTimestamp();
         }
     }
@@ -574,7 +574,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value val1 = Expressions.toValue(e1, factory, model, q);
             Value val2 = Expressions.toValue(e2, factory, model, q);
             Expressions.setImplicitTypes(val1, val2, e1.getJavaType(), q);
@@ -595,7 +595,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value val1 = Expressions.toValue(e1, factory, model, q);
             Value val2 = Expressions.toValue(e2, factory, model, q); 
             Expressions.setImplicitTypes(val1, val2, e1.getJavaType(), q); 
@@ -615,7 +615,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value val1 = Expressions.toValue(e1, factory, model, q);
             Value val2 = Expressions.toValue(e2, factory, model, q); 
             Expressions.setImplicitTypes(val1, val2, e1.getJavaType(), q); 
@@ -635,7 +635,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value val1 = Expressions.toValue(e1, factory, model, q);
             Value val2 = Expressions.toValue(e2, factory, model, q); 
             Expressions.setImplicitTypes(val1, val2, e1.getJavaType(), q); 
@@ -655,7 +655,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value val1 = Expressions.toValue(e1, factory, model, q);
             Value val2 = Expressions.toValue(e2, factory, model, q); 
             Expressions.setImplicitTypes(val1, val2, e1.getJavaType(), q); 
@@ -688,7 +688,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Object value = arg;
             if (arg instanceof ParameterImpl) {
                 return ((ParameterImpl)arg).toValue(factory, model, q);
@@ -731,7 +731,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.newTypeLiteral(arg, Literal.TYPE_CLASS);
         }
     }
@@ -751,7 +751,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value val = Expressions.toValue(collection, factory, model, q);
             return (isNegated()) 
                 ? factory.isNotEmpty(val) : factory.isEmpty(val);
@@ -766,7 +766,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Value toValue(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value v = Expressions.toValue(e, factory, model, q);
             ClassMetaData meta = ((PathImpl)e)._member.fmd.getElement()
                .getTypeMetaData();
@@ -801,7 +801,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.contains(
                 Expressions.toValue(collection, factory, model, q), 
                 Expressions.toValue(element, factory, model, q));
@@ -850,7 +850,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             String escapeStr = escapeChar == null ? null :
                 ((Character)((Literal)Expressions.toValue(
                     escapeChar, factory, model, q)).getValue()).toString();
@@ -888,7 +888,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Value toValue(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value[] vs = new Value[values.size()];
             int i = 0;
             for (Expression<?> e : values)
@@ -917,7 +917,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Value toValue(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             Value value1 = Expressions.toValue((ExpressionImpl<?>)val1, 
                 factory, model, q); 
             Value value2 = Expressions.toValue((ExpressionImpl<?>)val2, 
@@ -941,7 +941,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.equal(
                 Expressions.toValue(e, factory, model, q), 
                 factory.getNull());
@@ -963,7 +963,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.notEqual(
                 Expressions.toValue(e, factory, model, q), 
                 factory.getNull());
@@ -1002,7 +1002,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             org.apache.openjpa.kernel.exps.Expression inExpr = 
                 super.toKernelExpression(factory, model, q); 
             IsNotNull notNull = new Expressions.IsNotNull(e);
@@ -1061,7 +1061,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Value toValue(
                 ExpressionFactory factory, MetamodelImpl model, 
-                CriteriaQueryImpl q) {
+                CriteriaQueryImpl<?> q) {
             int size = whens.size();
             org.apache.openjpa.kernel.exps.Expression[] exps = 
                 new org.apache.openjpa.kernel.exps.Expression[size];
@@ -1135,7 +1135,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Value toValue(
                 ExpressionFactory factory, MetamodelImpl model, 
-                CriteriaQueryImpl q) {
+                CriteriaQueryImpl<?> q) {
             Value caseOperandExpr = Expressions.toValue(
                 (ExpressionImpl<?>)caseOperand, factory, model, q);
             int size = whens.size();
@@ -1162,7 +1162,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.toLowerCase(
                 Expressions.toValue(e, factory, model, q));
         }
@@ -1175,7 +1175,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.toUpperCase(
                 Expressions.toValue(e, factory, model, q));
         }
@@ -1188,7 +1188,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.stringLength(
                 Expressions.toValue(e, factory, model, q));
         }
@@ -1209,7 +1209,7 @@
         @Override
         org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             org.apache.openjpa.kernel.exps.Expression exists = 
                 factory.isNotEmpty(Expressions.toValue(e, factory, model, q));
             return isNegated() ? factory.not(exists) : exists;
@@ -1225,7 +1225,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.all(Expressions.toValue(e, factory, model, q));
         }        
     }
@@ -1239,7 +1239,7 @@
         
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl q) {
+            CriteriaQueryImpl<?> q) {
             return factory.any(Expressions.toValue(e, factory, model, q));
         }        
     }
@@ -1258,7 +1258,7 @@
         
         @Override
         public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
-          ExpressionFactory factory, MetamodelImpl model, CriteriaQueryImpl q) 
{
+          ExpressionFactory factory, MetamodelImpl model, CriteriaQueryImpl<?> 
q) {
             return factory.not(super.toKernelExpression(factory, model, q));
         }        
     }

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/Joins.java
 Wed Jun 24 15:48:04 2009
@@ -42,7 +42,7 @@
 import org.apache.openjpa.persistence.meta.Members.Member;
 
 /**
- * 
+ * @author Fay Wang
  * @author Pinaki Poddar
  * 
  */
@@ -55,13 +55,11 @@
      * @param <Z> type from which joining
      * @param <X> type of the attribute being joined
      */
-    public static class SingularJoin<Z,X> extends FromImpl<Z,X> 
-        implements Join<Z,X>{
+    public static class SingularJoin<Z,X> extends FromImpl<Z,X> implements 
Join<Z,X>{
         private final JoinType joinType;
         private boolean allowNull = false;
         
-        public SingularJoin(FromImpl<?,Z> from, 
-            Members.SingularAttributeImpl<? super Z, X> member, JoinType jt) {
+        public SingularJoin(FromImpl<?,Z> from, 
Members.SingularAttributeImpl<? super Z, X> member, JoinType jt) {
             super(from, member, member.getJavaType());
             joinType = jt;
             allowNull = joinType != JoinType.INNER;
@@ -79,14 +77,12 @@
          * Return the metamodel attribute corresponding to the join.
          * @return metamodel attribute type corresponding to the join
          */
-//        Attribute<? super Z, ?> getAttribute();
         public Attribute<? super Z, ?> getAttribute() {
             return  (Attribute<? super Z, ?> )_member;
         }
         
         @Override
-        public Value toValue(ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl c) {
+        public Value toValue(ExpressionFactory factory, MetamodelImpl model, 
CriteriaQueryImpl<?> c) {
             ClassMetaData meta = _member.fmd.getDeclaredTypeMetaData();
             org.apache.openjpa.kernel.exps.Path path = null;
             SubqueryImpl<?> subquery = c.getDelegator();
@@ -94,15 +90,12 @@
             if (c.isRegistered(this))
                 return c.getValue(this);
             else if (parent.inSubquery(subquery)) {
-                org.apache.openjpa.kernel.exps.Subquery subQ = 
-                    subquery.getSubQ();
+                org.apache.openjpa.kernel.exps.Subquery subQ = 
subquery.getSubQ();
                 path = factory.newPath(subQ);
                 path.setMetaData(subQ.getMetaData());
                 //path.setSchemaAlias(c.getAlias(this));
             } else {
-                path = 
-                    (org.apache.openjpa.kernel.exps.Path)
-                    _parent.toValue(factory, model, c);
+                path = (org.apache.openjpa.kernel.exps.Path) 
_parent.toValue(factory, model, c);
                 path.get(_member.fmd, allowNull);
                 path.setMetaData(meta);
                 path.setImplicitType(meta.getDescribedType());
@@ -111,57 +104,52 @@
         }
         
         @Override
-        public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
-            ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl c) {
+        public org.apache.openjpa.kernel.exps.Expression 
toKernelExpression(ExpressionFactory factory, 
+            MetamodelImpl model, CriteriaQueryImpl<?> c) {
             ClassMetaData meta = _member.fmd.getDeclaredTypeMetaData();
             org.apache.openjpa.kernel.exps.Path path = null;
             SubqueryImpl<?> subquery = c.getDelegator();
             PathImpl<?,?> parent = getInnermostParentPath();
             org.apache.openjpa.kernel.exps.Expression filter = null;
-            PathImpl correlatedParent = null;
+            PathImpl<?,?> correlatedParent = null;
             boolean bind = true;
             if (parent.inSubquery(subquery)) {
-                org.apache.openjpa.kernel.exps.Subquery subQ = 
-                    subquery.getSubQ();
+                org.apache.openjpa.kernel.exps.Subquery subQ = 
subquery.getSubQ();
                 path = factory.newPath(subQ);
                 correlatedParent = _parent.getCorrelatedParent();
                 if (correlatedParent == null) {
                     path.setMetaData(subQ.getMetaData());
                     path.get(_member.fmd, allowNull);
                     //path.setSchemaAlias(c.getAlias(_parent));
-                } else 
+                } else {
                     bind = false;
+                }
             } else if (c.isRegistered(_parent)) {
                Value var = c.getVariable(_parent);
                path = factory.newPath(var);
                path.setMetaData(meta);
                path.get(_member.fmd, false);
-            } else
-               path = 
-                (org.apache.openjpa.kernel.exps.Path)toValue(factory, model, 
c);
+            } else {
+               path = (org.apache.openjpa.kernel.exps.Path)toValue(factory, 
model, c);
+            }
             org.apache.openjpa.kernel.exps.Expression join = null;
             if (bind) {
-                Value var = factory.newBoundVariable(c.getAlias(this), 
-                    meta.getDescribedType());
+                Value var = factory.newBoundVariable(c.getAlias(this), 
meta.getDescribedType());
                 join = factory.bindVariable(var, path);
                 c.registerVariable(this, var, path);
             }
             if (getJoins() != null) {
                 for (Join<?, ?> join1 : getJoins()) {
                     filter = CriteriaExpressionBuilder.and(factory, 
-                        ((FromImpl<?,?>)join1).
-                        toKernelExpression(factory, model, c), filter);
+                                 
((FromImpl<?,?>)join1).toKernelExpression(factory, model, c), filter);
                 }
             }
-            org.apache.openjpa.kernel.exps.Expression expr = 
-                CriteriaExpressionBuilder.and(factory, join, filter);
+            org.apache.openjpa.kernel.exps.Expression expr = 
CriteriaExpressionBuilder.and(factory, join, filter);
             
-            if (correlatedParent == null)
+            if (correlatedParent == null) {
                 return expr;
-            else {
-                org.apache.openjpa.kernel.exps.Path parentPath =
-                    (org.apache.openjpa.kernel.exps.Path)
+            } else {
+                org.apache.openjpa.kernel.exps.Path parentPath = 
(org.apache.openjpa.kernel.exps.Path)
                     correlatedParent.toValue(factory, model, c);
                 parentPath.get(_member.fmd, allowNull);
                 //parentPath.setSchemaAlias(c.getAlias(correlatedParent));
@@ -186,8 +174,8 @@
         final JoinType joinType;
         boolean allowNull = false;
         
-        public AbstractCollection(FromImpl<?,Z> from, 
-            Members.PluralAttributeImpl<? super Z, C, E> member, JoinType jt) {
+        public AbstractCollection(FromImpl<?,Z> from, 
Members.PluralAttributeImpl<? super Z, C, E> member, 
+            JoinType jt) {
             super(from, member, member.getBindableJavaType());
             joinType = jt;
             allowNull = joinType != JoinType.INNER;
@@ -225,7 +213,7 @@
          */
         @Override
         public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-            CriteriaQueryImpl c) {
+            CriteriaQueryImpl<?> c) {
             ClassMetaData meta = getMemberClassMetaData(); 
             org.apache.openjpa.kernel.exps.Path path = null;
             SubqueryImpl<?> subquery = c.getDelegator();
@@ -235,14 +223,12 @@
                 Value var = c.getVariable(this);
                 path = factory.newPath(var);
             } else if (parent.inSubquery(subquery)) {
-                org.apache.openjpa.kernel.exps.Subquery subQ = 
-                    subquery.getSubQ();
+                org.apache.openjpa.kernel.exps.Subquery subQ = 
subquery.getSubQ();
                 path = factory.newPath(subQ);
                 path.setMetaData(subQ.getMetaData());
                 //path.setSchemaAlias(c.getAlias(this));
             } else {
-                path = (org.apache.openjpa.kernel.exps.Path)
-                    _parent.toValue(factory, model, c);
+                path = (org.apache.openjpa.kernel.exps.Path) 
_parent.toValue(factory, model, c);
                 path.get(_member.fmd, allowNull);
             }
             return path;
@@ -255,7 +241,7 @@
         @Override
         public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
             ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl c) {
+            CriteriaQueryImpl<?> c) {
             ClassMetaData meta = getMemberClassMetaData(); 
             org.apache.openjpa.kernel.exps.Path path = null;
             SubqueryImpl<?> subquery = c.getDelegator();
@@ -264,46 +250,41 @@
             PathImpl correlatedParent = null;
             boolean bind = true;
             if (parent.inSubquery(subquery)) {
-                org.apache.openjpa.kernel.exps.Subquery subQ = 
-                    subquery.getSubQ();
+                org.apache.openjpa.kernel.exps.Subquery subQ = 
subquery.getSubQ();
                 path = factory.newPath(subQ);
                 correlatedParent = _parent.getCorrelatedParent();
                 if (correlatedParent == null) {
                     path.setMetaData(subQ.getMetaData());
                     path.get(_member.fmd, allowNull);
                     //path.setSchemaAlias(c.getAlias(_parent));
-                } else
+                } else {
                     bind = false;
+                }
             } else if (c.isRegistered(_parent)) {
                 Value var = c.getVariable(_parent);
                 path = factory.newPath(var);
                 path.setMetaData(meta);
                 path.get(_member.fmd, false);
-            } else           
-                path = (org.apache.openjpa.kernel.exps.Path)
-                    toValue(factory, model, c);
-        
+            } else {           
+                path = (org.apache.openjpa.kernel.exps.Path)toValue(factory, 
model, c);
+            }
             org.apache.openjpa.kernel.exps.Expression join = null;
             if (bind) {
-                Value var = factory.newBoundVariable(c.getAlias(this), 
-                        meta.getDescribedType());
+                Value var = factory.newBoundVariable(c.getAlias(this), 
meta.getDescribedType());
                 join = factory.bindVariable(var, path);
                 c.registerVariable(this, var, path);
             }
             if (getJoins() != null) {
                 for (Join<?, ?> join1 : getJoins()) {
                     filter = CriteriaExpressionBuilder.and(factory, 
-                        ((FromImpl<?,?>)join1).
-                        toKernelExpression(factory, model, c), filter);
+                        ((FromImpl<?,?>)join1).toKernelExpression(factory, 
model, c), filter);
                 }
             }
-            org.apache.openjpa.kernel.exps.Expression expr = 
-                CriteriaExpressionBuilder.and(factory, join, filter);
-            if (correlatedParent == null)
+            org.apache.openjpa.kernel.exps.Expression expr = 
CriteriaExpressionBuilder.and(factory, join, filter);
+            if (correlatedParent == null) {
                 return expr;
-            else {
-                org.apache.openjpa.kernel.exps.Path parentPath =
-                    (org.apache.openjpa.kernel.exps.Path)
+            } else {
+                org.apache.openjpa.kernel.exps.Path parentPath = 
(org.apache.openjpa.kernel.exps.Path)
                     correlatedParent.toValue(factory, model, c);
                 parentPath.get(_member.fmd, allowNull);
                 //parentPath.setSchemaAlias(c.getAlias(correlatedParent));
@@ -321,8 +302,7 @@
      * @param <Z>
      * @param <E>
      */
-    public static class Collection<Z,E> 
-        extends AbstractCollection<Z,java.util.Collection<E>,E> 
+    public static class Collection<Z,E> extends 
AbstractCollection<Z,java.util.Collection<E>,E> 
         implements CollectionJoin<Z,E>{
         public Collection(FromImpl<?,Z> parent, 
             Members.CollectionAttributeImpl<? super Z, E> member, JoinType jt) 
{
@@ -341,8 +321,7 @@
      * @param <Z>
      * @param <E>
      */
-    public static class Set<Z,E> 
-        extends AbstractCollection<Z,java.util.Set<E>,E> 
+    public static class Set<Z,E> extends 
AbstractCollection<Z,java.util.Set<E>,E> 
         implements SetJoin<Z,E>{
         public Set(FromImpl<?,Z> parent, Members.SetAttributeImpl<? super Z, 
E> member, JoinType jt) {
             super(parent, member, jt);
@@ -360,8 +339,7 @@
      * @param <E>
      */
     
-    public static class List<Z,E> 
-        extends AbstractCollection<Z,java.util.List<E>,E> 
+    public static class List<Z,E> extends 
AbstractCollection<Z,java.util.List<E>,E> 
         implements ListJoin<Z,E> {
         
         public List(FromImpl<?,Z> parent, 
@@ -385,8 +363,7 @@
      * @param <E>
      */
     
-    public static class Map<Z,K,V> 
-        extends AbstractCollection<Z,java.util.Map<K,V>,V> 
+    public static class Map<Z,K,V> extends 
AbstractCollection<Z,java.util.Map<K,V>,V> 
         implements MapJoin<Z,K,V> {
         
         public Map(FromImpl<?,Z> parent, Members.MapAttributeImpl<? super Z, 
K,V> member, JoinType jt) {
@@ -418,20 +395,16 @@
         }
         
         @Override
-        public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
-            ExpressionFactory factory, MetamodelImpl model, 
-            CriteriaQueryImpl c) {
-            org.apache.openjpa.kernel.exps.Value path = toValue
-               (factory, model, c);
+        public org.apache.openjpa.kernel.exps.Expression 
toKernelExpression(ExpressionFactory factory,  
+            MetamodelImpl model, CriteriaQueryImpl<?> c) {
+            org.apache.openjpa.kernel.exps.Value path = toValue(factory, 
model, c);
             
             ClassMetaData meta = _member.fmd.isElementCollection() 
                 ? _member.fmd.getEmbeddedMetaData()
                 : _member.fmd.getElement().getDeclaredTypeMetaData();
                 
-            Value var = factory.newBoundVariable(c.getAlias(this), 
-                meta.getDescribedType());
-            org.apache.openjpa.kernel.exps.Expression join = factory
-                .bindValueVariable(var, path);
+            Value var = factory.newBoundVariable(c.getAlias(this), 
meta.getDescribedType());
+            org.apache.openjpa.kernel.exps.Expression join = 
factory.bindValueVariable(var, path);
             c.registerVariable(this, var, path);
             return join;
         }
@@ -440,9 +413,9 @@
        
    public static class MapKey<Z,K> extends PathImpl<Z,K> {
        Map<?,K,?> map;
+       
        public MapKey(Map<Z,K,?> joinMap){
-           super(((MapAttribute<Z, K, ?>)joinMap.getAttribute())
-                   .getKeyJavaType());
+           super(((MapAttribute<Z, K, 
?>)joinMap.getAttribute()).getKeyJavaType());
            this.map = joinMap;
        }
        
@@ -451,10 +424,8 @@
         * 
         */
        @Override
-       public Value toValue(ExpressionFactory factory, MetamodelImpl model, 
-           CriteriaQueryImpl c) {
-           org.apache.openjpa.kernel.exps.Path path = 
-               factory.newPath(c.getVariable(map));
+       public Value toValue(ExpressionFactory factory, MetamodelImpl model, 
CriteriaQueryImpl<?> c) {
+           org.apache.openjpa.kernel.exps.Path path = 
factory.newPath(c.getVariable(map));
            return factory.getKey(path);
        }
    }

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterImpl.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/ParameterImpl.java
 Wed Jun 24 15:48:04 2009
@@ -59,7 +59,7 @@
        
     @Override
     public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-        CriteriaQueryImpl q) {
+        CriteriaQueryImpl<?> q) {
         q.registerParameter(this);
         
 

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PathImpl.java
 Wed Jun 24 15:48:04 2009
@@ -34,7 +34,6 @@
 import org.apache.openjpa.kernel.exps.Value;
 import org.apache.openjpa.meta.ClassMetaData;
 import org.apache.openjpa.meta.FieldMetaData;
-import org.apache.openjpa.meta.JavaTypes;
 import org.apache.openjpa.persistence.meta.Members;
 import org.apache.openjpa.persistence.meta.MetamodelImpl;
 
@@ -107,7 +106,7 @@
     }
 
     protected FieldMetaData getEmbeddedFieldMetaData(FieldMetaData fmd) {
-        Members.Member member = getInnermostMember(_parent,_member);
+        Members.Member<?,?> member = getInnermostMember(_parent,_member);
         ClassMetaData embeddedMeta = member.fmd.getEmbeddedMetaData();
         if (embeddedMeta != null)
             return embeddedMeta.getField(fmd.getName());
@@ -115,8 +114,7 @@
             return fmd;
     }
     
-    protected Members.Member getInnermostMember(PathImpl parent, 
-        Members.Member member) {
+    protected Members.Member<?,?> getInnermostMember(PathImpl<?,?> parent, 
Members.Member<?,?> member) {
         return member != null ? member : getInnermostMember(parent._parent,
             parent._member); 
     }
@@ -134,7 +132,7 @@
      */
     @Override
     public Value toValue(
-        ExpressionFactory factory, MetamodelImpl model,  CriteriaQueryImpl q) {
+        ExpressionFactory factory, MetamodelImpl model,  CriteriaQueryImpl<?> 
q) {
         if (q.isRegistered(this))
             return q.getValue(this);
         org.apache.openjpa.kernel.exps.Path path = null;
@@ -161,10 +159,8 @@
             path = factory.newPath();
             path.setMetaData(model.repos.getCachedMetaData(getJavaType()));
         }
-        if (_member != null) {
-            int typeCode = _member.fmd.getDeclaredTypeCode();
-            if (typeCode != JavaTypes.COLLECTION && typeCode != JavaTypes.MAP)
-                path.setImplicitType(getJavaType());
+        if (_member != null && !_member.isCollection()) {
+            path.setImplicitType(getJavaType());
         }
         path.setAlias(q.getAlias(this));
         return path;
@@ -177,8 +173,7 @@
         return subquery != null && subquery.getRoots().contains(this);
     }
     
-    protected void traversePath(PathImpl<?,?> parent,
-            org.apache.openjpa.kernel.exps.Path path, FieldMetaData fmd) {
+    protected void traversePath(PathImpl<?,?> parent,  
org.apache.openjpa.kernel.exps.Path path, FieldMetaData fmd) {
         boolean allowNull = parent == null ? false : parent instanceof Join 
             && ((Join<?,?>)parent).getJoinType() != JoinType.INNER;
         FieldMetaData fmd1 = parent._member == null ? null : 
parent._member.fmd;
@@ -212,12 +207,9 @@
      *  collection-valued attribute.
      *  @param collection collection-valued attribute
      *  @return expression corresponding to the referenced attribute
-//    <E, C extends java.util.Collection<E>> Expression<C> 
get(PluralAttribute<X, C, E> collection);
      */
-    public <E, C extends java.util.Collection<E>> Expression<C>
-        get(PluralAttribute<X, C, E> coll) {
-        return new PathImpl<X,C>(this, (Members.Member<? super X, C>)coll, 
-                coll.getJavaType());
+    public <E, C extends java.util.Collection<E>> Expression<C>  
get(PluralAttribute<X, C, E> coll) {
+        return new PathImpl<X,C>(this, (Members.Member<? super X, C>)coll, 
coll.getJavaType());
     }
 
     /**
@@ -226,11 +218,8 @@
      *  @param map map-valued attribute
      *  @return expression corresponding to the referenced attribute
      */
-//    <K, V, M extends java.util.Map<K, V>> Expression<M> get(MapAttribute<X, 
K, V> map);
-    public <K, V, M extends java.util.Map<K, V>> Expression<M> 
-        get(MapAttribute<X, K, V> map) {
-        return new PathImpl<X,M>(this, (Members.MapAttributeImpl<? super 
X,K,V>)map, 
-                (Class<M>)map.getJavaType());
+    public <K, V, M extends java.util.Map<K, V>> Expression<M> 
get(MapAttribute<X, K, V> map) {
+        return new PathImpl<X,M>(this, (Members.MapAttributeImpl<? super 
X,K,V>)map, (Class<M>)map.getJavaType());
     }
     
     public <Y> Path<Y> get(String attName) {
@@ -239,8 +228,7 @@
         switch (type.getPersistenceType()) {
         case BASIC:
             throw new RuntimeException(attName + " not navigable from " + 
this);
-            default: next = (Members.Member<? super X, Y>)
-                ((ManagedType<?>)type).getAttribute(attName);
+            default: next = (Members.Member<? super X, Y>) 
((ManagedType<?>)type).getAttribute(attName);
         }
         return new PathImpl<X,Y>(this, next, (Class<Y>)type.getClass());
     }

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/PredicateImpl.java
 Wed Jun 24 15:48:04 2009
@@ -85,7 +85,7 @@
     @Override
     org.apache.openjpa.kernel.exps.Expression toKernelExpression(
         ExpressionFactory factory, MetamodelImpl model, 
-        CriteriaQueryImpl q) {
+        CriteriaQueryImpl<?> q) {
         if (_exps == null || _exps.isEmpty())
             return factory.emptyExpression();
         if (_exps.size() == 1)

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
 Wed Jun 24 15:48:04 2009
@@ -68,7 +68,7 @@
      */
     @Override
     public Value toValue(ExpressionFactory factory, MetamodelImpl model, 
-        CriteriaQueryImpl c) {
+        CriteriaQueryImpl<?> c) {
         SubqueryImpl<?> subquery = c.getDelegator();
         Path var = null;
         if (inSubquery(subquery)) {
@@ -87,7 +87,7 @@
      */
     @Override
     public org.apache.openjpa.kernel.exps.Expression toKernelExpression(
-        ExpressionFactory factory, MetamodelImpl model, CriteriaQueryImpl c) {
+        ExpressionFactory factory, MetamodelImpl model, CriteriaQueryImpl<?> 
c) {
         Value path = toValue(factory, model, c);
         Value var = factory.newBoundVariable(c.getAlias(this), 
              _entity.meta.getDescribedType());

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java?rev=788058&r1=788057&r2=788058&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/SubqueryImpl.java
 Wed Jun 24 15:48:04 2009
@@ -39,8 +39,10 @@
 import org.apache.openjpa.kernel.exps.Value;
 import org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder;
 import org.apache.openjpa.meta.ClassMetaData;
+import org.apache.openjpa.meta.FieldMetaData;
 import org.apache.openjpa.meta.JavaTypes;
 import org.apache.openjpa.persistence.meta.AbstractManagedType;
+import org.apache.openjpa.persistence.meta.Members;
 import org.apache.openjpa.persistence.meta.MetamodelImpl;
 import org.apache.openjpa.persistence.meta.Types;
 
@@ -54,31 +56,31 @@
  * @param <T> the type selected by this subquery.
  */
 public class SubqueryImpl<T> extends ExpressionImpl<T> implements Subquery<T> {
-    private final AbstractQuery _parent;
-    private final CriteriaQueryImpl _delegate;
+    private final AbstractQuery<?> _parent;
+    private final CriteriaQueryImpl<T> _delegate;
     private final MetamodelImpl  _model;
     private java.util.Set<Join<?,?>> _joins;
     private Expression<T> _select;
     private org.apache.openjpa.kernel.exps.Subquery _subq;
     
-    public SubqueryImpl(Class<T> cls, AbstractQuery parent) {
+    public SubqueryImpl(Class<T> cls, AbstractQuery<?> parent) {
         super(cls);
         _parent = parent;
-        if (parent instanceof CriteriaQueryImpl) 
-            _model = ((CriteriaQueryImpl)parent).getMetamodel();
-        else if (parent instanceof SubqueryImpl) 
-            _model = ((SubqueryImpl)parent).getMetamodel();
-        else 
+        if (parent instanceof CriteriaQueryImpl) {
+            _model = ((CriteriaQueryImpl<?>)parent).getMetamodel();
+        } else if (parent instanceof SubqueryImpl) {
+            _model = ((SubqueryImpl<?>)parent).getMetamodel();
+        } else {
             _model = null;
-        
-        _delegate = new CriteriaQueryImpl(_model, this);
+        }
+        _delegate = new CriteriaQueryImpl<T>(_model, this);
     }
     
-    public AbstractQuery getParent() {
+    public AbstractQuery<?> getParent() {
         return _parent;
     }
     
-    public CriteriaQueryImpl getDelegate() {
+    public CriteriaQueryImpl<T> getDelegate() {
         return _delegate;
     }
     
@@ -90,9 +92,9 @@
     //    return getInnermostParent().getContexts();
     //}
     
-    public CriteriaQueryImpl getInnermostParent() {
-        return (CriteriaQueryImpl)(((_parent instanceof CriteriaQueryImpl)) ? 
-            _parent : ((SubqueryImpl)_parent).getInnermostParent());
+    public CriteriaQueryImpl<?> getInnermostParent() {
+        return (CriteriaQueryImpl<?>)(((_parent instanceof CriteriaQueryImpl)) 
? 
+            _parent : ((SubqueryImpl<?>)_parent).getInnermostParent());
     }
 
     public Subquery<T> select(Expression<T> expression) {
@@ -172,8 +174,7 @@
     }
     
     public <Y> Root<Y> correlate(Root<Y> root) {
-        Types.Entity<Y> entity = 
-            (Types.Entity<Y>)((RootImpl<Y>)root).getModel();
+        Types.Entity<Y> entity = (Types.Entity<Y>)root.getModel();
         RootImpl<Y> corrRoot = new RootImpl<Y>(entity);
         corrRoot.setCorrelatedParent((RootImpl<Y>)root);
         Set<Root<?>> roots = getRoots();
@@ -222,7 +223,7 @@
      */
     @Override
     public Value toValue(ExpressionFactory factory, MetamodelImpl model,
-        CriteriaQueryImpl q) {
+        CriteriaQueryImpl<?> q) {
         final boolean subclasses = true;
         CriteriaExpressionBuilder queryEval = new CriteriaExpressionBuilder();
         String alias = q.getAlias(this);
@@ -250,15 +251,13 @@
         RootImpl<?> root = (RootImpl<?>)getRoot();
         RootImpl<?> correlatedRoot = (RootImpl<?>)root.getCorrelatedParent();
         if (correlatedRoot != null && root.getJoins() != null) {
-            FromImpl join = (FromImpl) root.getJoins().iterator().next();
-            if (join._member.fmd.getDeclaredTypeCode() == 
-                JavaTypes.COLLECTION || 
-                join._member.fmd.getDeclaredTypeCode() == 
-                JavaTypes.MAP)
-            return join._member.fmd.isElementCollection()
-                ? join._member.fmd.getEmbeddedMetaData()
-                : join._member.fmd.getElement().getDeclaredTypeMetaData();
-            return join._member.fmd.getDeclaredTypeMetaData();
+           Join<?,?> join = root.getJoins().iterator().next();
+           FieldMetaData fmd = ((Members.Member<?, ?>)join.getAttribute()).fmd;
+           if (join.getAttribute().isCollection()) {
+               return fmd.isElementCollection() ? fmd.getEmbeddedMetaData(): 
fmd.getElement().getDeclaredTypeMetaData();
+           } else {
+               return fmd.getDeclaredTypeMetaData();
+           }
         }
         return ((AbstractManagedType<?>)root.getModel()).meta;
     }


Reply via email to