From: <one...@us...> - 2002-12-28 02:25:51
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/query In directory sc8-pr-cvs1:/tmp/cvs-serv21213/cirrus/hibernate/query Modified Files: QueryTranslator.java Log Message: added support for <joined-subclass> to CodeGenerator added Query.getNamedParameters(), Query.setProperties() fixed a bug in Query.getReturnTypes() Index: QueryTranslator.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/query/QueryTranslator.java,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** QueryTranslator.java 25 Nov 2002 07:25:20 -0000 1.51 --- QueryTranslator.java 28 Dec 2002 02:25:49 -0000 1.52 *************** *** 1,9 **** //$Id$ package cirrus.hibernate.query; ! import java.io.Serializable; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; --- 1,11 ---- //$Id$ package cirrus.hibernate.query; ! ! import java.io.Serializable; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; + import java.util.Collection; import java.util.HashMap; import java.util.HashSet; *************** *** 284,293 **** } else { ! try { ! return (Queryable) factory.getPersister(typeName); ! } ! catch (MappingException me) { ! throw new QueryException( "persistent class not found: " + typeName ); ! } } } --- 286,292 ---- } else { ! Queryable persister = getPersister(typeName); ! if (persister==null) throw new QueryException( "persistent class not found: " + typeName ); ! return persister; } } *************** *** 417,420 **** --- 416,423 ---- } + public Collection getNamedParameters() { + return namedParameters.keySet(); + } + public static String scalarName(int x, int y) { return new StringBuffer().append('x').append(x).append('_').append(y).append('_').toString(); *************** *** 882,910 **** else if (check) { check = false; ! Class clazz=null; ! try { ! clazz = ReflectHelper.classForName(token); ! } ! catch (Exception e) { ! String[] imports = factory.getImports(); ! for (int i=0; i<imports.length; i++) { ! try { ! clazz=ReflectHelper.classForName( imports[i] + '.' + token ); ! } ! catch (Exception ex) {} ! if (clazz!=null) break; } - if (clazz==null) continue; - } - String[] implementors = factory.getImplementors(clazz); - String placeholder = "$clazz" + count + "$"; - query = StringHelper.replaceOnce(query, token, placeholder); - if ( implementors!=null ) { - placeholders.add(placeholder); - replacements.add(implementors); } } } return StringHelper.multiply( query, placeholders.iterator(), replacements.iterator() ); } --- 885,917 ---- else if (check) { check = false; ! Class clazz= getImportedClass(token, factory); ! if (clazz!=null) { ! String[] implementors = factory.getImplementors(clazz); ! String placeholder = "$clazz" + count + "$"; ! query = StringHelper.replaceOnce(query, token, placeholder); ! if ( implementors!=null ) { ! placeholders.add(placeholder); ! replacements.add(implementors); } } } } return StringHelper.multiply( query, placeholders.iterator(), replacements.iterator() ); + } + + private static Class getImportedClass(String name, SessionFactoryImplementor factory) { + try { + return ReflectHelper.classForName(name); + } + catch (Exception e) { + String[] imports = factory.getImports(); + for (int i=0; i<imports.length; i++) { + try { + return ReflectHelper.classForName( imports[i] + '.' + name ); + } + catch (Exception ex) {} + } + return null; + } } |