Author: bleny Date: 2013-12-18 18:43:56 +0100 (Wed, 18 Dec 2013) New Revision: 2935 Url: http://nuiton.org/projects/topia/repository/revisions/2935 Log: add some arguments checks in HqlAndParametersBuilder, add missing methods on TopiaQueryBuilderAddCriteriaStep Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDao.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaQueryBuilderAddCriteriaStep.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDao.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDao.java 2013-12-18 16:40:25 UTC (rev 2934) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDao.java 2013-12-18 17:43:56 UTC (rev 2935) @@ -785,6 +785,18 @@ return this; } + @Override + public TopiaQueryBuilderAddCriteriaOrRunQueryStep<E> addTopiaIdNotEquals(String property, String topiaId) { + hqlAndParametersBuilder.addTopiaIdNotEquals(property, topiaId); + return this; + } + + @Override + public TopiaQueryBuilderAddCriteriaOrRunQueryStep<E> addTopiaIdNotIn(String property, Iterable<String> topiaIds) { + hqlAndParametersBuilder.addTopiaIdNotIn(property, topiaIds); + return this; + } + // shortcuts to next step @Override Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java 2013-12-18 16:40:25 UTC (rev 2934) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/HqlAndParametersBuilder.java 2013-12-18 17:43:56 UTC (rev 2935) @@ -66,38 +66,18 @@ this.entityClass = entityClass; } - public Set<String> getWhereClauses() { - return whereClauses; - } - - public void setWhereClauses(Set<String> whereClauses) { - this.whereClauses = whereClauses; - } - public void addNull(String property) { + Preconditions.checkArgument(StringUtils.isNotBlank(property)); whereClauses.add(alias + "." + property + " is null"); } public void addNotNull(String property) { + Preconditions.checkArgument(StringUtils.isNotBlank(property)); whereClauses.add(alias + "." + property + " is not null"); } - public void setParameters(Map<String, Object> parameters) { - this.parameters = parameters; - } - - public void setOrderByArguments(Set<String> orderByArguments) { - this.orderByArguments = orderByArguments; - } - - public void setOrderByArguments(String... orderByArguments) { - Set<String> orderByArgumentsAsSet = Sets.newLinkedHashSet(); - orderByArgumentsAsSet.addAll(Arrays.asList(orderByArguments)); - this.orderByArguments = orderByArgumentsAsSet; - } - public void addEquals(String property, Object value) { - Preconditions.checkNotNull(property); + Preconditions.checkArgument(StringUtils.isNotEmpty(property)); // TODO brendan 02/10/13 do not use HQL parameters of Object are primitive types // TODO brendan 02/10/13 if value is intanceof TopiaEntity, we can check type if (value == null) { @@ -109,7 +89,7 @@ } public void addNotEquals(String property, Object value) { - Preconditions.checkNotNull(property); + Preconditions.checkArgument(StringUtils.isNotEmpty(property)); // TODO brendan 02/10/13 do not use HQL parameters of Object are primitive types // TODO brendan 02/10/13 if value is intanceof TopiaEntity, we can check type if (value == null) { @@ -133,7 +113,7 @@ * must not be in given collection */ protected void addInOrNotIn(String property, Iterable<?> values, boolean in) { - Preconditions.checkNotNull(property); + Preconditions.checkArgument(StringUtils.isNotEmpty(property)); Preconditions.checkNotNull(values); // TODO brendan 02/10/13 if value is intanceof TopiaEntity, we can check type // TODO brendan 02/10/13 do not use HQL parameters of Object are primitive @@ -189,9 +169,18 @@ } public void addTopiaIdIn(String property, Iterable<String> topiaIds) { - addIn(property + "." + TopiaEntity.PROPERTY_TOPIA_ID, (Iterable) topiaIds); + addIn(property + "." + TopiaEntity.PROPERTY_TOPIA_ID, topiaIds); } + public void addTopiaIdNotEquals(String property, String topiaId) { + Preconditions.checkNotNull(topiaId); + addNotEquals(property + "." + TopiaEntity.PROPERTY_TOPIA_ID, topiaId); + } + + public void addTopiaIdNotIn(String property, Iterable<String> topiaIds) { + addNotIn(property + "." + TopiaEntity.PROPERTY_TOPIA_ID, (Iterable) topiaIds); + } + public void addContains(String property, Object value) { String hqlParameterName = putHqlParameterWithAvailableName(property, value); whereClauses.add(":" + hqlParameterName + " in elements(" + alias + "." + property + ")"); @@ -215,6 +204,31 @@ parameters.putAll(hqlParameters); } + public void setWhereClauses(Set<String> whereClauses) { + Preconditions.checkNotNull(whereClauses); + this.whereClauses = whereClauses; + } + + public Set<String> getWhereClauses() { + return whereClauses; + } + + public void setParameters(Map<String, Object> parameters) { + Preconditions.checkNotNull(parameters); + this.parameters = parameters; + } + + public void setOrderByArguments(Set<String> orderByArguments) { + Preconditions.checkNotNull(orderByArguments); + this.orderByArguments = orderByArguments; + } + + public void setOrderByArguments(String... orderByArguments) { + Set<String> orderByArgumentsAsSet = Sets.newLinkedHashSet(); + orderByArgumentsAsSet.addAll(Arrays.asList(orderByArguments)); + this.orderByArguments = orderByArgumentsAsSet; + } + public String getHql() { StringBuilder hqlStringBuilder = new StringBuilder(); hqlStringBuilder.append("from ").append(entityClass.getCanonicalName()).append(" ").append(alias); Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaQueryBuilderAddCriteriaStep.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaQueryBuilderAddCriteriaStep.java 2013-12-18 16:40:25 UTC (rev 2934) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaQueryBuilderAddCriteriaStep.java 2013-12-18 17:43:56 UTC (rev 2935) @@ -103,6 +103,10 @@ TopiaQueryBuilderAddCriteriaOrRunQueryStep<E> addTopiaIdIn(String property, Iterable<String> topiaIds); + TopiaQueryBuilderAddCriteriaOrRunQueryStep<E> addTopiaIdNotEquals(String property, String topiaId); + + TopiaQueryBuilderAddCriteriaOrRunQueryStep<E> addTopiaIdNotIn(String property, Iterable<String> topiaIds); + TopiaQueryBuilderRunQueryStep<E> setOrderByArguments(Set<String> orderByArguments); TopiaQueryBuilderRunQueryStep<E> setOrderByArguments(String... orderByArguments);