modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
| 6 ++--
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
| 14 ++++++---
modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
| 15 ++++++----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
| 3 +-
4 files changed, 23 insertions(+), 15 deletions(-)
New commits:
commit 2ddc360da4203e3324b8aeb70726ab0106c26d13
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Mar 5 12:20:32 2013 -0500
Add Unsupported exceptions for global filters
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
index bd86eb9..b6c02da 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
@@ -291,4 +291,9 @@ public class JPADriftChangeSetCriteria extends Criteria implements
DriftChangeSe
return (filterId == null) ? null : filterId.toString();
}
+ @Override
+ public void addFilterIds(Integer... filterIds) {
+ throw new UnsupportedOperationException("The filter is not supported by
DriftChangeSetCriteria.");
+ }
+
}
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
index 2d993b0..b222b58 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
@@ -107,6 +107,11 @@ public class JPADriftCriteria extends Criteria implements
DriftCriteria {
}
@Override
+ public void addFilterIds(Integer... filterIds) {
+ throw new UnsupportedOperationException("The filter is not supported by
DriftCriteria.");
+ }
+
+ @Override
public String getFilterId() {
return (null == filterId) ? null : filterId.toString();
}
commit f83221007972fe95022be238f4d22a563276eee4
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Mar 5 12:10:14 2013 -0500
Fix issue with global filterId support for the JPA impls of the generic Drift
criterias. Don't have redundant filter fields and make sure the
copy constructor sets the filter. Also, allow null to be set on the filter.
diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
index e2d435c..abd05c4 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/Criteria.java
@@ -120,13 +120,13 @@ public abstract class Criteria implements Serializable, BaseCriteria
{
private String searchExpression;
// All Criteria support sorting on ID
- private PageOrdering sortId;
+ protected PageOrdering sortId;
// All Criteria support filtering on ID
- private Integer filterId;
+ protected Integer filterId;
// All Criteria support filtering on IDs
- private List<Integer> filterIds;
+ protected List<Integer> filterIds;
/**
* This default constructor will set default paging to avoid unintended fetch of huge
results. The default is:
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
index 4b6a24b..bd86eb9 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftChangeSetCriteria.java
@@ -43,7 +43,6 @@ import org.rhq.core.domain.util.PageOrdering;
public class JPADriftChangeSetCriteria extends Criteria implements DriftChangeSetCriteria
{
private static final long serialVersionUID = 1L;
- private Integer filterId;
private Integer filterInitial; // needs override
private Integer filterResourceId; // needs override
private Integer filterDriftDefinitionId; // needs override
@@ -91,6 +90,7 @@ public class JPADriftChangeSetCriteria extends Criteria implements
DriftChangeSe
+ " WHERE drift.path like ? )"); // note, this uses
'like' on purpose, it is always substring
if (null != changeSetCriteria) {
+ this.addFilterId(changeSetCriteria.getFilterId());
this.addFilterCategory(changeSetCriteria.getFilterCategory());
this.addFilterCreatedAfter(changeSetCriteria.getFilterCreatedAfter());
this.addFilterCreatedBefore(changeSetCriteria.getFilterCreatedBefore());
@@ -283,13 +283,12 @@ public class JPADriftChangeSetCriteria extends Criteria implements
DriftChangeSe
@Override
public void addFilterId(String filterId) {
- if (filterId != null) {
- this.filterId = Integer.parseInt(filterId);
- }
+ this.filterId = (filterId == null) ? null : Integer.parseInt(filterId);
}
@Override
public String getFilterId() {
- return filterId == null ? null : filterId.toString();
+ return (filterId == null) ? null : filterId.toString();
}
+
}
diff --git
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
index 468d9b3..2d993b0 100644
---
a/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
+++
b/modules/core/domain/src/main/java/org/rhq/core/domain/criteria/JPADriftCriteria.java
@@ -26,8 +26,8 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import org.rhq.core.domain.drift.DriftCategory;
-import org.rhq.core.domain.drift.JPADrift;
import org.rhq.core.domain.drift.DriftConfigurationDefinition.DriftHandlingMode;
+import org.rhq.core.domain.drift.JPADrift;
import org.rhq.core.domain.util.CriteriaUtils;
import org.rhq.core.domain.util.PageOrdering;
@@ -41,7 +41,6 @@ import org.rhq.core.domain.util.PageOrdering;
public class JPADriftCriteria extends Criteria implements DriftCriteria {
private static final long serialVersionUID = 1L;
- private Integer filterId;
private List<DriftCategory> filterCategories = new
ArrayList<DriftCategory>();
private Integer filterChangeSetId; // needs override
private Integer filterChangeSetStartVersion; // needs override
@@ -77,6 +76,7 @@ public class JPADriftCriteria extends Criteria implements DriftCriteria
{
if (null != driftCriteria) {
this.fetchChangeSet(driftCriteria.isFetchChangeSet());
+ this.addFilterId(driftCriteria.getFilterId());
this.addFilterCategories(driftCriteria.getFilterCategories());
this.addFilterChangeSetId(driftCriteria.getFilterChangeSetId());
this.addFilterChangeSetStartVersion(driftCriteria.getFilterChangeSetStartVersion());
@@ -103,14 +103,12 @@ public class JPADriftCriteria extends Criteria implements
DriftCriteria {
@Override
public void addFilterId(String filterId) {
- if (filterId != null) {
- this.filterId = Integer.parseInt(filterId);
- }
+ this.filterId = (null == filterId) ? null : Integer.parseInt(filterId);
}
@Override
public String getFilterId() {
- return filterId == null ? null : filterId.toString();
+ return (null == filterId) ? null : filterId.toString();
}
@Override
commit 72e569540bdac7ea857b76a8b55203fba14e4d2e
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Mar 5 12:06:57 2013 -0500
Make this a little more efficient.
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
index 67b6316..8f0d2cc 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/util/CriteriaQueryGenerator.java
@@ -569,6 +569,7 @@ public final class CriteriaQueryGenerator {
List<Field> results = new ArrayList<Field>();
Class<?> currentLevelClass = criteria.getClass();
+ List<String> globalFields = fieldType.getGlobalFields();
boolean isCriteriaClass = false;
do {
@@ -577,7 +578,7 @@ public final class CriteriaQueryGenerator {
for (Field field : currentLevelClass.getDeclaredFields()) {
field.setAccessible(true);
if (isCriteriaClass) {
- if (fieldType.getGlobalFields().contains(field.getName()))
+ if (globalFields.contains(field.getName()))
results.add(field);
} else if (field.getName().startsWith(prefix)) {
Show replies by date