private Constructor createConstructorBasedOnQueryType()

in src/main/java/software/aws/neptune/sparql/SparqlQueryExecutor.java [247:278]


    private Constructor<?> createConstructorBasedOnQueryType(final String sparql) throws SQLException {
        final Constructor<?> constructor;
        try {
            final Query query = QueryFactory.create(sparql);
            switch (query.queryType()) {
                case SELECT:
                    constructor = SparqlSelectResultSet.class
                            .getConstructor(java.sql.Statement.class,
                                    SparqlSelectResultSet.ResultSetInfoWithRows.class);
                    break;
                case ASK:
                    constructor = SparqlAskResultSet.class
                            .getConstructor(java.sql.Statement.class, SparqlAskResultSet.ResultSetInfoWithRows.class);
                    break;
                case CONSTRUCT:
                case DESCRIBE:
                    constructor = SparqlTriplesResultSet.class
                            .getConstructor(java.sql.Statement.class,
                                    SparqlTriplesResultSet.ResultSetInfoWithRows.class);
                    break;
                default:
                    throw SqlError
                            .createSQLException(LOGGER, SqlState.INVALID_QUERY_EXPRESSION, SqlError.INVALID_QUERY);
            }
        } catch (final Exception e) {
            throw SqlError.createSQLException(
                    LOGGER,
                    SqlState.INVALID_QUERY_EXPRESSION,
                    SqlError.QUERY_FAILED, e);
        }
        return constructor;
    }