/** * Parameter is bound if it holds any value, else will return false. * * @param param * the param * @return true, if is bound */ public boolean isBound(Parameter param) { return getClauseValue(param) != null; }
@Override public <T> T getParameterValue(Parameter<T> paramParameter) { Object value = kunderaQuery.getClauseValue(paramParameter); if (value == null) { throw new IllegalStateException("parameter has not been bound" + paramParameter); } return (T) value; }
/** * Returns parameter value. * * @param paramString * parameter as string. * * @return value of parameter. */ private List<Object> onParameterValue(String paramString) { List<Object> value = kunderaQuery.getClauseValue(paramString); if (value == null) { throw new IllegalStateException("parameter has not been bound" + paramString); } return value; }
private Map<Parameter, Object> getParamaters() { Map<Parameter, Object> parameterMap = new HashMap<Parameter, Object>(); if (getKunderaQuery().getParameters() == null || getKunderaQuery().getParameters().isEmpty()) { return parameterMap; } for (Parameter parameter : getKunderaQuery().getParameters()) { parameterMap.put(parameter, getKunderaQuery().getClauseValue(parameter)); } return parameterMap; }
personIdList.add("personId"); Object value = kunderaQuery.getClauseValue(":name"); Assert.assertNotNull(value); Assert.assertEquals(nameList, value); value = kunderaQuery.getClauseValue(":ageList"); Assert.assertNotNull(value); Assert.assertEquals(ageList, value); value = kunderaQuery.getClauseValue(":salaryList"); Assert.assertNotNull(value); Assert.assertEquals(salaryList, value); value = kunderaQuery.getClauseValue(":personId"); Assert.assertNotNull(value); Assert.assertEquals(personIdList, value);
personIdList.add("personId"); Object value = kunderaQuery.getClauseValue(":salaryList"); Assert.assertNotNull(value); Assert.assertEquals(salaryList, value); value = kunderaQuery.getClauseValue(":personId"); Assert.assertNotNull(value); Assert.assertEquals(personIdList, value);
@Test public void testOnIndexParameter() { String query = "Select p from CassandraUUIDEntity p where p.uuidKey = ?1 and p.name= ?2"; KunderaQuery kunderaQuery = new KunderaQuery(query, ((EntityManagerFactoryImpl) emf).getKunderaMetadataInstance()); KunderaQueryParser queryParser = new KunderaQueryParser(kunderaQuery); queryParser.parse(); kunderaQuery.postParsingInit(); kunderaQuery.setParameter(1, "uuid1"); kunderaQuery.setParameter(2, "uuidname"); List<String> uuidList = new ArrayList<String>(); uuidList.add("uuid1"); List<String> nameList = new ArrayList<String>(); nameList.add("uuidname"); Object value = kunderaQuery.getClauseValue("?1"); Assert.assertNotNull(value); Assert.assertEquals(uuidList, value); value = kunderaQuery.getClauseValue("?2"); Assert.assertNotNull(value); Assert.assertEquals(nameList, value); Assert.assertEquals(2, kunderaQuery.getParameters().size()); Iterator<Parameter<?>> parameters = kunderaQuery.getParameters().iterator(); while (parameters.hasNext()) { Assert.assertTrue(kunderaQuery.isBound(parameters.next())); } }
ageList.add(32); Object value = kunderaQuery.getClauseValue(":name"); Assert.assertNotNull(value); Assert.assertEquals(nameList, value); value = kunderaQuery.getClauseValue(":age"); Assert.assertNotNull(value); Assert.assertEquals(ageList, value);
@Test public void testOnNameParameter() { String query = "Select p from CassandraUUIDEntity p where p.uuidKey = :uuid and p.name= :name"; KunderaQuery kunderaQuery = new KunderaQuery(query, ((EntityManagerFactoryImpl) emf).getKunderaMetadataInstance()); KunderaQueryParser queryParser = new KunderaQueryParser(kunderaQuery); queryParser.parse(); kunderaQuery.postParsingInit(); kunderaQuery.setParameter("uuid", "uuid1"); kunderaQuery.setParameter("name", "uuidname"); Assert.assertEquals(2, kunderaQuery.getParameters().size()); Iterator<Parameter<?>> parameters = kunderaQuery.getParameters().iterator(); while (parameters.hasNext()) { Assert.assertTrue(kunderaQuery.isBound(parameters.next())); } List<String> uuidList = new ArrayList<String>(); uuidList.add("uuid1"); List<String> nameList = new ArrayList<String>(); nameList.add("uuidname"); Object value = kunderaQuery.getClauseValue(":uuid"); Assert.assertNotNull(value); Assert.assertEquals(uuidList, value); value = kunderaQuery.getClauseValue(":name"); Assert.assertNotNull(value); Assert.assertEquals(nameList, value); Assert.assertEquals(2, kunderaQuery.getParameters().size()); }
ageList.add(32); Object value = kunderaQuery.getClauseValue("?1"); nameList.add(value.toString()); Assert.assertNotNull(value); Assert.assertEquals(value, value); value = kunderaQuery.getClauseValue("?2"); Assert.assertNotNull(value); Assert.assertEquals(ageList, value); kunderaQuery.getClauseValue("invalidparam"); Assert.fail("Should have gone to catch block!"); kunderaQuery.setParameter(2, 35); value = kunderaQuery.getClauseValue("?1"); Assert.assertNotNull(value); Assert.assertEquals(ageList, value); ageList.add(35); value = kunderaQuery.getClauseValue("?2"); Assert.assertNotNull(value); Assert.assertEquals(ageList, value);
/** * Test invalid name parameter. */ @Test public void testInvalidNameParameter() { String query = "Select p from Person p where p.personName = :name and p.age= :age"; KunderaQuery kunderaQuery = new KunderaQuery(query, kunderaMetadata); KunderaQueryParser queryParser = new KunderaQueryParser(kunderaQuery); queryParser.parse(); kunderaQuery.postParsingInit(); kunderaQuery.setParameter("name", "pname"); kunderaQuery.setParameter("age", 32); try { kunderaQuery.getClauseValue(":naame"); Assert.fail("Should be catch block"); } catch (IllegalArgumentException iaex) { Assert.assertEquals("parameter is not a parameter of the query", iaex.getMessage()); } }
@Test public void testInvalidNameParameter() { String query = "Select p from CassandraUUIDEntity p where p.uuidKey = :uuid and p.name= :name"; KunderaQuery kunderaQuery = new KunderaQuery(query, ((EntityManagerFactoryImpl) emf).getKunderaMetadataInstance()); KunderaQueryParser queryParser = new KunderaQueryParser(kunderaQuery); queryParser.parse(); kunderaQuery.postParsingInit(); kunderaQuery.setParameter("uuid", "uuid1"); kunderaQuery.setParameter("name", "uuidname"); try { kunderaQuery.getClauseValue(":naame"); Assert.fail("Should be catch block"); } catch (IllegalArgumentException iaex) { Assert.assertEquals("parameter is not a parameter of the query", iaex.getMessage()); } }
/** * Test invalid index parameter. */ @Test public void testInvalidIndexParameter() { String query = "Select p from Person p where p.personName = ?1 and p.age= ?2"; KunderaQuery kunderaQuery = new KunderaQuery(query, kunderaMetadata); KunderaQueryParser queryParser = new KunderaQueryParser(kunderaQuery); queryParser.parse(); kunderaQuery.postParsingInit(); kunderaQuery.setParameter(1, "pname"); kunderaQuery.setParameter(2, 32); try { kunderaQuery.getClauseValue("?3"); Assert.fail("Should be catch block"); } catch (IllegalArgumentException iaex) { Assert.assertEquals("parameter is not a parameter of the query", iaex.getMessage()); } }
@Test public void testInvalidIndexParameter() { String query = "Select p from CassandraUUIDEntity p where p.uuidKey = ?1 and p.name= ?2"; KunderaQuery kunderaQuery = new KunderaQuery(query, ((EntityManagerFactoryImpl) emf).getKunderaMetadataInstance()); KunderaQueryParser queryParser = new KunderaQueryParser(kunderaQuery); queryParser.parse(); kunderaQuery.postParsingInit(); kunderaQuery.setParameter(1, "uuid1"); kunderaQuery.setParameter(2, "uuidname"); try { kunderaQuery.getClauseValue("?3"); Assert.fail("Should be catch block"); } catch (IllegalArgumentException iaex) { Assert.assertEquals("parameter is not a parameter of the query", iaex.getMessage()); } }
kunderaQuery.getClauseValue(":naame"); Assert.fail("Should have gone to catch block!"); kunderaQuery.getClauseValue(new JPAParameter()); Assert.fail("Should have gone to catch block!");
private Map<Parameter, Object> getParamaters() { Map<Parameter, Object> parameterMap = new HashMap<Parameter, Object>(); if (getKunderaQuery().getParameters() == null || getKunderaQuery().getParameters().isEmpty()) { return parameterMap; } for (Parameter parameter : getKunderaQuery().getParameters()) { parameterMap.put(parameter, getKunderaQuery().getClauseValue(parameter)); } return parameterMap; }