Example usage for org.hibernate Query getReturnTypes

List of usage examples for org.hibernate Query getReturnTypes

Introduction

In this page you can find the example usage for org.hibernate Query getReturnTypes.

Prototype

@Deprecated
Type[] getReturnTypes();

Source Link

Document

Return the Hibernate types of the query results.

Usage

From source file:com.ikon.servlet.admin.DatabaseQueryServlet.java

License:Open Source License

/**
 * Execute hibernate sentence/*from w w  w  . j ava  2  s .  c  o m*/
 */
@SuppressWarnings("unchecked")
private GlobalResult executeHQL(Session session, String hql, List<String> vtables) throws HibernateException,
        DatabaseException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
    long begin = System.currentTimeMillis();

    if (hql.toUpperCase().startsWith("SELECT") || hql.toUpperCase().startsWith("FROM")) {
        Query q = session.createQuery(hql);
        List<Object> ret = q.list();
        List<String> columns = new ArrayList<String>();
        List<String> vcolumns = new ArrayList<String>();
        List<List<String>> results = new ArrayList<List<String>>();
        Type[] rt = q.getReturnTypes();
        int i = 0;

        if (vtables == null) {
            for (i = 0; i < rt.length; i++) {
                columns.add(rt[i].getName());
            }
        } else {
            for (String vtable : vtables) {
                String query = "select dmt.virtualColumn, dmt.realColumn from DatabaseMetadataType dmt where dmt.table='"
                        + vtable + "'";
                List<Object> tmp = LegacyDAO.executeQuery(query);

                for (Object obj : tmp) {
                    Object[] dt = (Object[]) obj;
                    vcolumns.add(String.valueOf(dt[0]));
                    columns.add(String.valueOf(dt[0]).concat(" (").concat(String.valueOf(dt[1])).concat(")"));
                }
            }
        }

        for (Iterator<Object> it = ret.iterator(); it.hasNext() && i++ < Config.MAX_SEARCH_RESULTS;) {
            List<String> row = new ArrayList<String>();
            Object obj = it.next();

            if (vtables == null) {
                if (obj instanceof Object[]) {
                    Object[] ao = (Object[]) obj;

                    for (int j = 0; j < ao.length; j++) {
                        row.add(String.valueOf(ao[j]));
                    }
                } else {
                    row.add(String.valueOf(obj));
                }
            } else {
                if (obj instanceof DatabaseMetadataValue) {
                    for (String column : vcolumns) {
                        row.add(DatabaseMetadataUtils.getString((DatabaseMetadataValue) obj, column));
                    }
                } else if (obj instanceof Object[]) {
                    for (Object objChild : (Object[]) obj) {
                        if (objChild instanceof DatabaseMetadataValue) {
                            DatabaseMetadataValue dmvChild = (DatabaseMetadataValue) objChild;
                            List<DatabaseMetadataType> types = DatabaseMetadataDAO
                                    .findAllTypes(dmvChild.getTable());

                            for (DatabaseMetadataType emt : types) {
                                for (String column : vcolumns) {
                                    if (emt.getVirtualColumn().equals(column)) {
                                        row.add(BeanUtils.getProperty(dmvChild, emt.getRealColumn()));
                                    }
                                }
                            }
                        } else {
                            row.add(String.valueOf(objChild));
                        }
                    }
                } else {
                    row.add("Query result should be instance of DatabaseMetadataValue");
                }
            }

            results.add(row);
        }

        GlobalResult gr = new GlobalResult();
        gr.setColumns(columns);
        gr.setResults(results);
        gr.setRows(null);
        gr.setSql(hql);
        gr.setTime(System.currentTimeMillis() - begin);
        return gr;
    } else {
        GlobalResult gr = new GlobalResult();
        int rows = session.createQuery(hql).executeUpdate();
        gr.setColumns(null);
        gr.setResults(null);
        gr.setRows(rows);
        gr.setSql(hql);
        gr.setTime(System.currentTimeMillis() - begin);
        return gr;
    }
}

From source file:com.jaspersoft.ireport.designer.connection.JRSpringLoadedHibernateConnection.java

License:Open Source License

@Override
public void test() throws Exception {
    try {//w  w w . j  ava  2  s.  com
        Thread.currentThread().setContextClassLoader(IReportManager.getInstance().getReportClassLoader());

        SessionFactory sf = getSessionFactory();
        if (sf == null) {
            JOptionPane.showMessageDialog(Misc.getMainWindow(),
                    //I18n.getString("messages.connectionDialog.noSessionFactoryReturned",
                    "No session factory returned.  Check your session factory bean id against the spring configuration.",
                    "Error", JOptionPane.ERROR_MESSAGE);
        } else {

            Session hb_session = sf.openSession();
            Transaction transaction = hb_session.beginTransaction();
            Query q = hb_session.createQuery("select address as address Address as address");

            q.setFetchSize(1);
            java.util.Iterator iterator = q.iterate();
            // this is a stupid thing: iterator.next();

            String[] aliases = q.getReturnAliases();
            Type[] types = q.getReturnTypes();

            JOptionPane.showMessageDialog(Misc.getMainWindow(),
                    //I18n.getString("messages.connectionDialog.hibernateConnectionTestSuccessful",
                    "iReport successfully created a Hibernate session factory from your Spring configuration.",
                    "", JOptionPane.INFORMATION_MESSAGE);
        }
    } catch (Exception e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(Misc.getMainWindow(), e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);

    }
}

From source file:com.jaspersoft.ireport.designer.data.fieldsproviders.hibernate.HQLFieldsReader.java

License:Open Source License

public Vector readFields() throws Exception {
    prepareQuery();/* w ww  .  j  av  a2  s  .c om*/

    SessionFactory hb_sessionFactory = null;
    Session hb_session = null;
    Transaction transaction = null;

    notScalars.clear();

    try {
        IReportConnection conn = IReportManager.getInstance().getDefaultConnection();
        if (!(conn instanceof JRHibernateConnection)) {
            throw new Exception("No Hibernate connection selected.");
        }

        hb_session = ((JRHibernateConnection) conn).createSession();

        if (hb_session == null) {
            throw new Exception("Problem creating the Session object for Hibernate");
        }

        transaction = hb_session.beginTransaction();
        Query q = hb_session.createQuery(getQueryString());

        Iterator paramIterator = queryParameters.keySet().iterator();

        while (paramIterator.hasNext()) {
            String hqlParamName = "" + paramIterator.next();
            setParameter(hb_session, q, hqlParamName, queryParameters.get(hqlParamName));
        }

        q.setFetchSize(1);
        java.util.Iterator iterator = q.iterate();
        // this is a stupid thing: iterator.next();

        String[] aliases = q.getReturnAliases();
        Type[] types = q.getReturnTypes();

        Vector fields = new Vector();

        for (int i = 0; i < types.length; ++i) {
            if (types[i].isComponentType() || types[i].isEntityType()) {

                // look for alias...
                String aliasName = null;
                if (aliases != null && aliases.length > i && !aliases[i].equals(i + "")) {
                    aliasName = aliases[i];
                    JRDesignField field = new JRDesignField();
                    field.setName(aliases[i]);

                    Class clazzRT = types[i].getReturnedClass();

                    if (clazzRT.isPrimitive()) {
                        clazzRT = MethodUtils.getPrimitiveWrapper(clazzRT);
                    }

                    String returnType = clazzRT.getName();

                    field.setValueClassName(returnType);
                    field.setDescription(aliases[i]);
                    fields.add(field);
                }

                // look for fields like for a javabean...
                java.beans.PropertyDescriptor[] pd = org.apache.commons.beanutils.PropertyUtils
                        .getPropertyDescriptors(types[i].getReturnedClass());

                if (aliasName != null) {
                    notScalars.add(new FieldClassWrapper(aliasName, types[i].getReturnedClass().getName()));
                } else {
                    notScalars.add(types[i].getReturnedClass().getName());
                }

                for (int nd = 0; nd < pd.length; ++nd) {
                    String fieldName = pd[nd].getName();
                    if (pd[nd].getPropertyType() != null && pd[nd].getReadMethod() != null) {
                        if (fieldName.equals("class"))
                            continue;

                        Class clazzRT = pd[nd].getPropertyType();

                        if (clazzRT.isPrimitive()) {
                            clazzRT = MethodUtils.getPrimitiveWrapper(clazzRT);
                        }

                        String returnType = clazzRT.getName();

                        JRDesignField field = new JRDesignField();
                        field.setName(fieldName);
                        field.setValueClassName(returnType);

                        if (types.length > 1 && aliasName != null) {
                            fieldName = aliasName + "." + fieldName;
                            field.setDescription(fieldName); //Field returned by " +methods[i].getName() + " (real type: "+ returnType +")");
                            field.setName(fieldName);
                        }
                        fields.add(field);
                    }
                }

            } else {
                String fieldName = types[i].getName();
                if (aliases != null && aliases.length > i && !aliases[i].equals("" + i))
                    fieldName = aliases[i];

                Class clazzRT = types[i].getReturnedClass();

                if (clazzRT.isPrimitive()) {
                    clazzRT = MethodUtils.getPrimitiveWrapper(clazzRT);
                }
                String returnType = clazzRT.getName();

                JRDesignField field = new JRDesignField();
                field.setName(fieldName);
                field.setValueClassName(returnType);
                //field.setDescription("");
                fields.add(field);
            }
        }
        /*
        else
        {
            for (int i =0; i<types.length; ++i)
            {
                if (aliases != null && aliases.length > 0 && !aliases[0].equals(""+i))
                {
                    JRField field = new JRField(aliases[i], types[i].getReturnedClass().getName());
                    field.setDescription("The whole entity/component object");
                    fields.add(field);
                            
                            
                }
                        
                        
            //    out.println(types[i].getName() + " " + types[i].getReturnedClass().getName() +  "<br>");
            }
        }
         */

        return fields;

    } catch (Exception ex) {
        ex.printStackTrace();
        throw ex;
    } finally {

        if (transaction != null)
            try {
                transaction.rollback();
            } catch (Exception ex) {
            }
        if (hb_session != null)
            try {
                hb_session.close();
            } catch (Exception ex) {
            }
    }
}

From source file:com.mg.jet.birt.report.data.oda.ejbql.Statement.java

License:Open Source License

public void prepare(String query) throws OdaException {
    Query qry = null;
    // Test the connection
    testConnection();/*from w ww  .j a  v a2s.  c o m*/
    // holds the column types
    List<String> arColsType = new ArrayList<String>();
    List<String> arCols = new ArrayList<String>();
    List<String> arColClass = new ArrayList<String>();

    // holds the column names, also used for labels
    String[] props = null;
    try {

        Session hibsession = HibernateUtil.currentSession();
        // Create a Hibernate Query
        query = query.replaceAll("[\\n\\r]+", " ");
        query = query.trim();
        qry = hibsession.createQuery(query);

        // Get the list of return types from the query
        Type[] qryReturnTypes = qry.getReturnTypes();
        paramNames = Arrays.asList(qry.getNamedParameters());
        paramValues = new Object[paramNames.size()];

        // When specifing the HQL "from object" the returned type is a
        // Hibernate EntityType
        // When the columns are specified the returned values are normal
        // data types
        // The first half of this if statment handles the EntityType, the
        // else handles the
        // other case.
        // We are not handling multipe result sets.
        if (qryReturnTypes.length > 0 && qryReturnTypes[0].isEntityType()) {
            for (int j = 0; j < qryReturnTypes.length; j++) {
                // Get the classname and use utility function to retrieve
                // data types
                String clsName = qryReturnTypes[j].getName();
                // props holds the column names
                props = HibernateUtil.getHibernateProp(clsName);
                for (int x = 0; x < props.length; x++) {
                    String propType = HibernateUtil.getHibernatePropTypes(clsName, props[x]);
                    // Verify that the data type is valid
                    if (DataTypes.isValidType(propType)) {
                        arColsType.add(propType);
                        // Only do this on Entity Types so we dont have a
                        // name collision
                        arCols.add(props[x]);
                        arColClass.add(clsName);
                    } else {
                        throw new OdaException(
                                Messages.getString("Statement.SOURCE_DATA_ERROR") + " " + propType);
                    }
                }
            }
        } else {
            // Extract the column names from the query
            props = extractColumns(qry.getQueryString());
            // Get the return types from the Type[]
            for (int t = 0; t < qryReturnTypes.length; t++) {
                // Verify that the data type is valid
                String propType = qryReturnTypes[t].getName();
                if (DataTypes.isValidType(propType)) {
                    arColsType.add(qryReturnTypes[t].getName());
                    arCols.add(props[t]);
                } else {
                    throw new OdaException(Messages.getString("Statement.SOURCE_DATA_ERROR") + " " + propType);
                }
            }

        }
    } catch (OdaException e) {
        throw e;
    } catch (Exception e) {
        throw new OdaException(e);
    }
    // this example does not enforce unique column names
    // Create a new ResultSetMetaData object passing in the column names and
    // data types

    // Have to remove . which BIRT does not allow
    String[] arLabels = (String[]) arCols.toArray(new String[arCols.size()]);
    for (int j = 0; j < arLabels.length; j++) {
        arLabels[j] = arLabels[j].replace('.', ':');
    }

    this.resultSetMetaData = new ResultSetMetaData(arLabels,
            (String[]) arColsType.toArray(new String[arColsType.size()]), arLabels,
            (String[]) arColClass.toArray(new String[arColClass.size()]));
    // query is saved for execution
    this.query = query;

}

From source file:com.mg.jet.birt.report.data.oda.ejbql.Statement.java

License:Open Source License

@SuppressWarnings("unchecked")
public IResultSet executeQuery() throws OdaException {
    Type[] qryReturnTypes = null;
    List<Object> rst = null;

    try {//from w ww.jav a2  s . co  m
        Session hibsession = HibernateUtil.currentSession();

        String qryStr = this.query;
        qryStr = qryStr.replaceAll("[\\n\\r]+", " ");
        qryStr.trim();
        // Create the Hibernate query, notice that we are using the query
        // prepared
        Query qry = hibsession.createQuery(qryStr);
        for (int i = 0; i < paramNames.size(); i++) {
            Object paramValue = convertParamValue(hibsession, paramNames.get(i), paramValues[i]);
            if (paramValue instanceof Object[])
                qry.setParameterList(paramNames.get(i), (Object[]) paramValue);
            else
                qry.setParameter(paramNames.get(i), paramValue);
        }
        if (maxRows != 0)
            qry.setMaxResults(maxRows);
        // use the query list method to return the resuls in a List object
        rst = qry.list();
        qryReturnTypes = qry.getReturnTypes();

    } catch (Exception e) {
        throw new OdaException(e);
    }

    // create a new ResultSet Ojbect passing in the row set and the meta
    // data and the
    // Hibernate query return types
    return new ResultSet(rst, getMetaData(), qryReturnTypes);
}

From source file:com.openkm.servlet.admin.DatabaseQueryServlet.java

License:Open Source License

/**
 * Execute hibernate sentence/*ww w.j  a  v a  2s.  c om*/
 */
@SuppressWarnings("unchecked")
private DbQueryGlobalResult executeHQL(Session session, String hql, boolean showSql, List<String> vtables)
        throws HibernateException, DatabaseException, IllegalAccessException, InvocationTargetException,
        NoSuchMethodException {
    long begin = System.currentTimeMillis();

    if (hql.toUpperCase().startsWith("SELECT") || hql.toUpperCase().startsWith("FROM")) {
        Query q = session.createQuery(hql);
        List<Object> ret = q.list();
        List<String> columns = new ArrayList<String>();
        List<String> vcolumns = new ArrayList<String>();
        List<List<String>> results = new ArrayList<List<String>>();
        Type[] rt = q.getReturnTypes();
        int i = 0;

        if (vtables == null) {
            for (i = 0; i < rt.length; i++) {
                columns.add(rt[i].getName());
            }
        } else {
            for (String vtable : vtables) {
                String query = "select dmt.virtualColumn, dmt.realColumn from DatabaseMetadataType dmt where dmt.table='"
                        + vtable + "'";
                List<Object> tmp = LegacyDAO.executeQuery(query);

                for (Object obj : tmp) {
                    Object[] dt = (Object[]) obj;
                    vcolumns.add(String.valueOf(dt[0]));
                    columns.add(String.valueOf(dt[0]).concat(" (").concat(String.valueOf(dt[1])).concat(")"));
                }
            }
        }

        for (Iterator<Object> it = ret.iterator(); it.hasNext() && i++ < Config.MAX_SEARCH_RESULTS;) {
            List<String> row = new ArrayList<String>();
            Object obj = it.next();

            if (vtables == null) {
                if (obj instanceof Object[]) {
                    Object[] ao = (Object[]) obj;

                    for (int j = 0; j < ao.length; j++) {
                        row.add(String.valueOf(ao[j]));
                    }
                } else {
                    row.add(String.valueOf(obj));
                }
            } else {
                if (obj instanceof DatabaseMetadataValue) {
                    DatabaseMetadataValue dmv = (DatabaseMetadataValue) obj;
                    row.add(String.valueOf(dmv.getId()));

                    for (String column : vcolumns) {
                        row.add(DatabaseMetadataUtils.getString(dmv, column));
                    }
                } else if (obj instanceof Object[]) {
                    for (Object objChild : (Object[]) obj) {
                        if (objChild instanceof DatabaseMetadataValue) {
                            DatabaseMetadataValue dmvChild = (DatabaseMetadataValue) objChild;
                            List<DatabaseMetadataType> types = DatabaseMetadataDAO
                                    .findAllTypes(dmvChild.getTable());

                            for (DatabaseMetadataType emt : types) {
                                for (String column : vcolumns) {
                                    if (emt.getVirtualColumn().equals(column)) {
                                        row.add(BeanUtils.getProperty(dmvChild, emt.getRealColumn()));
                                    }
                                }
                            }
                        } else {
                            row.add(String.valueOf(objChild));
                        }
                    }
                } else {
                    row.add("Query result should be instance of DatabaseMetadataValue");
                }
            }

            results.add(row);
        }

        DbQueryGlobalResult gr = new DbQueryGlobalResult();
        gr.setColumns(columns);
        gr.setResults(results);
        gr.setRows(null);
        gr.setSql(hql);
        gr.setExtra(showSql ? HibernateUtil.toSql(hql) : null);
        gr.setTime(System.currentTimeMillis() - begin);
        return gr;
    } else {
        DbQueryGlobalResult gr = new DbQueryGlobalResult();
        int rows = session.createQuery(hql).executeUpdate();
        gr.setColumns(null);
        gr.setResults(null);
        gr.setRows(rows);
        gr.setSql(hql);
        gr.setTime(System.currentTimeMillis() - begin);
        return gr;
    }
}

From source file:com.qcadoo.model.internal.HibernateServiceImpl.java

License:Open Source License

@Override
public InternalDataDefinition resolveDataDefinition(final Query query) {
    return resolveDataDefinition(query.getReturnTypes(), query.getReturnAliases());
}

From source file:com.wavemaker.runtime.data.hibernate.DataServiceMetaData_Hib.java

License:Open Source License

private DataOperationFactory initFactory(final Session session) {
    return new DataOperationFactory() {

        // this is magic, and has to match the name of the
        // generated example query(ies).
        private static final String GENERATED_QUERY_NAME = "ExampleHQLQuery1";

        @Override//from w ww .  j  ava2  s. c om
        public Collection<String> getEntityClassNames() {
            return DataServiceMetaData_Hib.this.entityClassNames;
        }

        @Override
        public List<Tuple.Three<String, String, Boolean>> getQueryInputs(String queryName) {

            List<Tuple.Three<String, String, Boolean>> rtn = new ArrayList<Tuple.Three<String, String, Boolean>>();

            NamedQueryDefinition def = getQueryDefinition(queryName);

            Map<String, String> m = CastUtils.cast(def.getParameterTypes());

            for (Map.Entry<String, String> e : m.entrySet()) {
                Tuple.Two<String, Boolean> t = DataServiceUtils.getQueryType(e.getValue());
                rtn.add(Tuple.tuple(e.getKey(), t.v1, t.v2));
            }

            return rtn;
        }

        @Override
        @SuppressWarnings("unchecked")
        public Collection<String> getQueryNames() {

            Collection<String> rtn = new HashSet<String>();

            Configuration cfg = getConfiguration();

            rtn.addAll(cfg.getNamedQueries().keySet());
            rtn.addAll(cfg.getNamedSQLQueries().keySet());

            return rtn;
        }

        @Override
        public List<String> getQueryReturnNames(String operationName, String queryName) {

            Query query = session.getNamedQuery(queryName);

            try {
                String[] names = query.getReturnAliases();
                if (names != null) {
                    return Arrays.asList(names);
                }
            } catch (RuntimeException ex) {
            }

            return Collections.emptyList();

        }

        @Override
        public boolean requiresResultWrapper(String operationName, String queryName) {
            NamedQueryDefinition query = getQueryDefinition(queryName);
            return DataServiceUtils.requiresResultWrapper(query.getQuery());
        }

        @Override
        public List<String> getQueryReturnTypes(String operationName, String queryName) {

            List<String> rtn = new ArrayList<String>();

            Type[] rtnTypes = getReturnTypes(queryName);

            String queryString = getQueryDefinition(queryName).getQuery();

            if (rtnTypes == null) {
                // Must be DML
                if (!DataServiceUtils.isDML(queryString)) {
                    // throw new AssertionError(
                    // "Query " + queryName + " doesn't return anything");
                    // actually if it is a sql query we also end up here -
                    // the tests have at least one...
                }
                rtn.add(DataServiceConstants.DML_OPERATION_RTN_TYPE.getName());
            } else {

                if (DataServiceUtils.isDynamicInstantiationQuery(queryString)) {
                    String className = DataServiceUtils.getDynamicInstantiationClassName(queryString);

                    if (!StringUtils.isFullyQualified(className)) {
                        if (DataServiceMetaData_Hib.this.entityNames.contains(className)) {
                            className = StringUtils.fq(getDataPackage(), className);
                        }
                    }
                    rtn.add(className);
                } else {
                    for (Type t : rtnTypes) {
                        rtn.add(getJavaTypeName(t));
                    }
                }
            }

            return rtn;
        }

        @Override
        public boolean queryReturnsSingleResult(String operationName, String queryName) {

            // hack for generated queries - only required for initial
            // ServiceDefinition instance that is used to add the service
            if (queryName.equals(GENERATED_QUERY_NAME)) {
                return true;
            }

            // to make existing tests happy
            if (queryName.startsWith("get") && queryName.endsWith("ById")) {
                return true;
            }

            return false;
        }

        private Type[] getReturnTypes(String queryName) {

            Type[] rtn = null;

            Query query = session.getNamedQuery(queryName);

            // this blows up for named sql queries (vs named hql queries)
            // exception msg from hibernate is: "not yet implemented for sql
            // queries"
            try {
                rtn = query.getReturnTypes();
            } catch (RuntimeException ex) {
                if (DataServiceLoggers.metaDataLogger.isDebugEnabled()) {
                    DataServiceLoggers.metaDataLogger
                            .debug("Failed to determine rtn type for query \"" + queryName + "\"");
                }
            }
            return rtn;
        }
    };
}

From source file:com.wavemaker.runtime.data.task.AbstractReadTask.java

License:Open Source License

protected Object runQuery(Query query, boolean singleResult, String dbName) {

    if (singleResult) {
        return query.uniqueResult();
    } else {/*from   w  w w . j a  v a  2  s . co  m*/

        List<?> rs = query.list();

        SessionFactory sessFact = getSessionFactory(dbName);
        Type[] returnTypes = query.getReturnTypes();
        Class<?> returnedClass = returnTypes[0].getReturnedClass();
        String[] propertyNames = sessFact.getClassMetadata(returnedClass).getPropertyNames();
        Type[] propertyTypes = sessFact.getClassMetadata(returnedClass).getPropertyTypes();

        ObjectAccess oa = ObjectAccess.getInstance();

        //
        // To eliminate possible duplicates and construct a new list
        // with orders preserved for the final results
        //
        Iterator<?> rsItr = rs.iterator();
        List<Object> finalResultSet = new ArrayList<Object>();
        while (rsItr.hasNext()) {
            Object obj = rsItr.next();
            if (finalResultSet.contains(obj)) {
                continue;
            }

            for (int i = 0; i < propertyTypes.length; i++) {
                if (propertyTypes[i].getName().contains("lob")
                        || propertyTypes[i].getName().toLowerCase().contains("binary")) {
                    oa.setProperty(obj, propertyNames[i], null);
                }
            }
            finalResultSet.add(obj);
        }

        return finalResultSet;
    }
}

From source file:com.wavemaker.runtime.data.task.CheckQueryTask.java

License:Open Source License

private void checkQueryReturnAliases(Query query) {

    if (query.getReturnAliases() == null) {
        return;/*from  w  w w .  ja v  a 2  s . c  o m*/
    }

    Collection<String> upperCaseAliases = new ArrayList<String>();
    Collection<String> illegalIdentifiers = new ArrayList<String>();

    Type[] types = query.getReturnTypes();

    List<String> names = DataServiceUtils.getColumnNames(types.length, Arrays.asList(query.getReturnAliases()));

    for (String name : names) {
        if (Character.isUpperCase(name.charAt(0))) {
            upperCaseAliases.add(name);
        }
        if (!StringUtils.isValidJavaIdentifier(name)) {
            illegalIdentifiers.add(name);
        }
    }
    if (!upperCaseAliases.isEmpty()) {
        throw new DataServiceQueryException("Query return aliases cannot start with upper-case letters: "
                + ObjectUtils.toString(upperCaseAliases));
    }
    if (!illegalIdentifiers.isEmpty()) {
        throw new DataServiceQueryException("Query return aliases must be legal java identifiers: "
                + ObjectUtils.toString(illegalIdentifiers));
    }
}