1 22 package org.jboss.ejb.plugins.cmp.ejbql; 23 24 import org.jboss.ejb.plugins.cmp.jdbc.JDBCUtil; 25 import org.jboss.ejb.plugins.cmp.jdbc.JDBCResultSetReader; 26 import org.jboss.logging.Logger; 27 28 import java.sql.ResultSet ; 29 import java.sql.SQLException ; 30 import java.util.Collection ; 31 32 36 public abstract class AggregateFunction 37 extends SimpleNode 38 implements SelectFunction 39 { 40 private final Logger log; 41 private JDBCResultSetReader resultReader; 42 private Class resultType; 43 44 public String distinct = ""; 45 46 public AggregateFunction(int i) 47 { 48 super(i); 49 log = Logger.getLogger(getClass()); 50 } 51 52 public void setResultType(Class type) 53 { 54 if(Collection .class.isAssignableFrom(type)) 55 { 56 resultType = getDefaultResultType(); 57 } 58 else 59 { 60 this.resultType = type; 61 } 62 this.resultReader = JDBCUtil.getResultReaderByType(resultType); 63 } 64 65 protected Class getDefaultResultType() 66 { 67 return Double .class; 68 } 69 70 72 public Object readResult(ResultSet rs) throws SQLException 73 { 74 return resultReader.get(rs, 1, resultType, log); 75 } 76 } 77 | Popular Tags |