You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by jo...@apache.org on 2009/09/01 17:17:37 UTC
svn commit: r810092 - in /labs/jaxmas/trunk/JaxMas/src:
main/java/org/apache/labs/jaxmas/registry/infomodel/
main/java/org/apache/labs/jaxmas/registry/schema/
main/java/org/apache/labs/jaxmas/registry/sql/
test/java/org/apache/labs/jaxmas/registry/
Author: jochen
Date: Tue Sep 1 15:17:37 2009
New Revision: 810092
URL: http://svn.apache.org/viewvc?rev=810092&view=rev
Log:
The order of classifications and associations is now preserved.
Added:
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AssociationNumOrderPredicate.java
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/ClassificationNumOrderPredicate.java
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/OrderPredicate.java
Modified:
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/AssociationImpl.java
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ClassificationImpl.java
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/RegistryObjectImpl.java
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java
labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java
labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/TaxonomiesTestCase.java
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/AssociationImpl.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/AssociationImpl.java?rev=810092&r1=810091&r2=810092&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/AssociationImpl.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/AssociationImpl.java Tue Sep 1 15:17:37 2009
@@ -37,6 +37,7 @@
private Key targetObjectKey;
private RegistryObject targetObject;
private boolean confirmed, confirmedBySourceOwner, confirmedByTargetOwner, extramural;
+ private int num;
/**
* Creates a new instance.
@@ -45,6 +46,20 @@
super(pRegistryService, pKey);
}
+ /**
+ * Returns the associations number within its parents list of associations.
+ */
+ public int getNum() {
+ return num;
+ }
+
+ /**
+ * Sets the associations number within its parents list of associations.
+ */
+ public void setNum(int pNum) {
+ num = pNum;
+ }
+
@Override
public Concept getAssociationType() throws JAXRException {
ensureLoaded();
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ClassificationImpl.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ClassificationImpl.java?rev=810092&r1=810091&r2=810092&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ClassificationImpl.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/ClassificationImpl.java Tue Sep 1 15:17:37 2009
@@ -35,6 +35,7 @@
public class ClassificationImpl extends OwnedRegistryObject<Classification> implements Classification {
private Key conceptKey;
private Concept concept;
+ private int num;
/**
* Creates a new instance.
@@ -43,6 +44,20 @@
super(pRegistryService, pKey);
}
+ /**
+ * Returns the classifications number within its parents list of classifications.
+ */
+ public int getNum() {
+ return num;
+ }
+
+ /**
+ * Sets the classifications number within its parents list of classifications.
+ */
+ public void setNum(int pNum) {
+ num = pNum;
+ }
+
@Override
public ClassificationScheme getClassificationScheme() throws JAXRException {
return getConcept().getClassificationScheme();
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/RegistryObjectImpl.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/RegistryObjectImpl.java?rev=810092&r1=810091&r2=810092&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/RegistryObjectImpl.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/infomodel/RegistryObjectImpl.java Tue Sep 1 15:17:37 2009
@@ -20,9 +20,11 @@
import java.lang.reflect.UndeclaredThrowableException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -45,6 +47,8 @@
import org.apache.labs.jaxmas.registry.accessor.ConceptAccessor;
import org.apache.labs.jaxmas.registry.accessor.ROAccessor;
import org.apache.labs.jaxmas.registry.accessor.ROAccessors;
+import org.apache.labs.jaxmas.registry.sql.AssociationNumOrderPredicate;
+import org.apache.labs.jaxmas.registry.sql.ClassificationNumOrderPredicate;
import org.apache.labs.jaxmas.registry.sql.OwnerPredicate;
import org.apache.labs.jaxmas.registry.sql.Predicate;
import org.apache.labs.jaxmas.registry.sql.RegistryObjectLoader;
@@ -59,9 +63,9 @@
private final InternationalStringController name;
private final InternationalStringController description;
private Key key;
- private Collection<Association> associations;
+ private List<Association> associations;
private Collection<Key> loadedClassificationKeys, loadedAssociationKeys;
- private Collection<Classification> classifications;
+ private List<Classification> classifications;
private Collection<ExternalIdentifier> externalIdentifiers = new ArrayList<ExternalIdentifier>();
private Collection<ExternalLink> externalLinks = new ArrayList<ExternalLink>();
@@ -160,6 +164,7 @@
public void addAssociation(Association pAssociation) throws JAXRException {
ensureAssociationsLoaded();
pAssociation.setSourceObject(this);
+ ((AssociationImpl) pAssociation).setNum(associations.size());
associations.add(pAssociation);
}
@@ -180,8 +185,9 @@
break;
case referenced:
case loaded:
- final Predicate predicate = new OwnerPredicate(getKey(), false);
- final Collection<Predicate> predicates = Collections.singleton(predicate);
+ final List<Predicate> predicates = new ArrayList<Predicate>(2);
+ predicates.add(new OwnerPredicate(getKey(), false));
+ predicates.add(ClassificationNumOrderPredicate.getInstance());
final RegistryObjectLoader rol = ClassificationAccessor.getInstance().getRegistryObjectLoader();
loadedClassificationKeys = new HashSet<Key>();
final Collection<RegistryObject> storedClassifications = rol.getResultList(getRegistryService(), predicates);
@@ -194,6 +200,9 @@
// Nothing to do
break;
}
+ if (loadedClassificationKeys == null) {
+ loadedClassificationKeys = new HashSet<Key>();
+ }
}
}
@@ -206,11 +215,12 @@
break;
case referenced:
case loaded:
- final Predicate predicate = new OwnerPredicate(getKey(), false);
- final Collection<Predicate> predicates = Collections.singleton(predicate);
+ final List<Predicate> list = new ArrayList<Predicate>(2);
+ list.add(new OwnerPredicate(getKey(), false));
+ list.add(AssociationNumOrderPredicate.getInstance());
final RegistryObjectLoader rol = AssociationAccessor.getInstance().getRegistryObjectLoader();
loadedAssociationKeys = new HashSet<Key>();
- final Collection<RegistryObject> storedAssociations = rol.getResultList(getRegistryService(), predicates);
+ final Collection<RegistryObject> storedAssociations = rol.getResultList(getRegistryService(), list);
for (RegistryObject ro : storedAssociations) {
loadedAssociationKeys.add(ro.getKey());
}
@@ -220,6 +230,9 @@
// Nothing to do
break;
}
+ if (loadedAssociationKeys == null) {
+ loadedAssociationKeys = new HashSet<Key>();
+ }
}
}
@@ -227,6 +240,7 @@
public void addClassification(Classification pClassification) throws JAXRException {
ensureClassificationsLoaded();
pClassification.setClassifiedObject(this);
+ ((ClassificationImpl) pClassification).setNum(classifications.size());
classifications.add(pClassification);
}
@@ -389,20 +403,26 @@
@SuppressWarnings("unchecked")
@Override
public void setAssociations(Collection pAssociations) throws JAXRException {
- if (pAssociations == null) {
- associations.clear();
- } else {
- associations = pAssociations;
+ ensureAssociationsLoaded();
+ associations.clear();
+ int i = 0;
+ for (Object o : pAssociations) {
+ final AssociationImpl assoc = (AssociationImpl) o;
+ assoc.setNum(i++);
+ associations.add(assoc);
}
}
- @SuppressWarnings({"unchecked", "cast"})
+ @SuppressWarnings("unchecked")
@Override
public void setClassifications(Collection pClassifications) throws JAXRException {
- if (pClassifications == null) {
- classifications.clear();
- } else {
- classifications = (Collection<Classification>) pClassifications;
+ ensureClassificationsLoaded();
+ classifications.clear();
+ int i = 0;
+ for (Object o : pClassifications) {
+ final ClassificationImpl cl = (ClassificationImpl) o;
+ cl.setNum(i++);
+ classifications.add(cl);
}
}
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql?rev=810092&r1=810091&r2=810092&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/schema/schema-update.1.sql Tue Sep 1 15:17:37 2009
@@ -84,6 +84,7 @@
roKey VARCHAR(32) NOT NULL PRIMARY KEY,
roKeyTarget VARCHAR(32) NOT NULL,
roKeyType VARCHAR(32) NOT NULL,
+ num BIGINT NOT NULL,
CONSTRAINT FK_Associations_RO FOREIGN KEY (roKey) REFERENCES RegistryObjects ON DELETE CASCADE,
CONSTRAINT FK_Associations_Target FOREIGN KEY (roKeyTarget) REFERENCES RegistryObjects ON DELETE RESTRICT
);
@@ -91,6 +92,7 @@
CREATE TABLE Classifications (
roKey VARCHAR(32) NOT NULL PRIMARY KEY,
roKeyConcept VARCHAR(32) NOT NULL,
+ num BIGINT NOT NULL,
CONSTRAINT FK_Classifications_RO FOREIGN KEY (roKey) REFERENCES RegistryObjects ON DELETE CASCADE,
CONSTRAINT FK_Classifications_Concept FOREIGN KEY (roKeyConcept) REFERENCES RegistryObjects ON DELETE RESTRICT
);
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java?rev=810092&r1=810091&r2=810092&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AbstractDbDriver.java Tue Sep 1 15:17:37 2009
@@ -312,8 +312,8 @@
final ClassificationImpl cl = (ClassificationImpl) pObject;
final Concept concept = cl.getConcept();
assert(concept != null);
- run("INSERT INTO Classifications (roKey, roKeyConcept) VALUES (?, ?)", //$NON-NLS-1$
- cl.getKey(), concept.getKey());
+ run("INSERT INTO Classifications (roKey, roKeyConcept, num) VALUES (?, ?, ?)", //$NON-NLS-1$
+ cl.getKey(), concept.getKey(), Integer.valueOf(cl.getNum()));
}
if (pObject instanceof Association) {
@@ -322,16 +322,22 @@
assert(assocType != null);
final RegistryObject target = assoc.getTargetObject();
assert(target != null);
- run("INSERT INTO Associations (roKey, roKeyType, roKeyTarget) VALUES (?, ?, ?)", //$NON-NLS-1$
- assoc.getKey(), assocType.getKey(), target.getKey());
+ run("INSERT INTO Associations (roKey, roKeyType, roKeyTarget, num) VALUES (?, ?, ?, ?)", //$NON-NLS-1$
+ assoc.getKey(), assocType.getKey(), target.getKey(), Integer.valueOf(assoc.getNum()));
}
+ int num = 0;
for (Classification cl : asClassificationCollection(ro.getClassifications())) {
- ((ClassificationImpl) cl).getROLoader().save(getRegistryService(), cl);
+ final ClassificationImpl clImpl = (ClassificationImpl) cl;
+ clImpl.setNum(num++);
+ clImpl.getROLoader().save(getRegistryService(), cl);
}
+ num = 0;
for (Association assoc : asAssociationCollection(ro.getAssociations())) {
- ((AssociationImpl) assoc).getROLoader().save(getRegistryService(), assoc);
+ final AssociationImpl assocImpl = (AssociationImpl) assoc;
+ assocImpl.setNum(num++);
+ assocImpl.getROLoader().save(getRegistryService(), assoc);
}
}
@@ -380,8 +386,8 @@
final ClassificationImpl cl = (ClassificationImpl) pObject;
final Concept concept = cl.getConcept();
assert(concept != null);
- run("UPDATE Classifications SET roKeyConcept=? WHERE roKey=?", //$NON-NLS-1$
- concept.getKey(), cl.getKey());
+ run("UPDATE Classifications SET roKeyConcept=?, num=? WHERE roKey=?", //$NON-NLS-1$
+ concept.getKey(), Integer.valueOf(cl.getNum()), cl.getKey());
}
if (pObject instanceof Association) {
@@ -390,8 +396,8 @@
assert(assocType != null);
final RegistryObject target = assoc.getTargetObject();
assert(target != null);
- run("UPDATE Associations SET roKeyType=?, roKeyTarget=? WHERE roKey=?", //$NON-NLS-1$
- assocType.getKey(), target.getKey(), assoc.getKey());
+ run("UPDATE Associations SET roKeyType=?, roKeyTarget=?, num=? WHERE roKey=?", //$NON-NLS-1$
+ assocType.getKey(), target.getKey(), Integer.valueOf(assoc.getNum()), assoc.getKey());
}
final Collection<Key> loadedClassificationKeys = ro.getLoadedClassificationKeys();
Added: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AssociationNumOrderPredicate.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AssociationNumOrderPredicate.java?rev=810092&view=auto
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AssociationNumOrderPredicate.java (added)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/AssociationNumOrderPredicate.java Tue Sep 1 15:17:37 2009
@@ -0,0 +1,34 @@
+package org.apache.labs.jaxmas.registry.sql;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import javax.xml.registry.JAXRException;
+
+
+/**
+ * An "ORDER BY" predicate, which requests ordering by the
+ * associations number.
+ */
+public class AssociationNumOrderPredicate implements OrderPredicate {
+ private static final AssociationNumOrderPredicate theInstance = new AssociationNumOrderPredicate();
+
+ /**
+ * Returns the singleton instance.
+ */
+ public static AssociationNumOrderPredicate getInstance() {
+ return theInstance;
+ }
+ /**
+ * Private constructor, to ensure singleton pattern.
+ */
+ private AssociationNumOrderPredicate() {
+ // Does nothing
+ }
+
+ @Override
+ public void add(StringBuilder pBuffer, List<Object> pParameters)
+ throws SQLException, JAXRException {
+ pBuffer.append("assoc.num"); //$NON-NLS-1$
+ }
+}
Added: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/ClassificationNumOrderPredicate.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/ClassificationNumOrderPredicate.java?rev=810092&view=auto
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/ClassificationNumOrderPredicate.java (added)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/ClassificationNumOrderPredicate.java Tue Sep 1 15:17:37 2009
@@ -0,0 +1,34 @@
+package org.apache.labs.jaxmas.registry.sql;
+
+import java.sql.SQLException;
+import java.util.List;
+
+import javax.xml.registry.JAXRException;
+
+
+/**
+ * An "ORDER BY" predicate, which requests ordering by the
+ * classifications number.
+ */
+public class ClassificationNumOrderPredicate implements OrderPredicate {
+ private static final ClassificationNumOrderPredicate theInstance = new ClassificationNumOrderPredicate();
+
+ /**
+ * Returns the singleton instance.
+ */
+ public static ClassificationNumOrderPredicate getInstance() {
+ return theInstance;
+ }
+ /**
+ * Private constructor, to ensure singleton pattern.
+ */
+ private ClassificationNumOrderPredicate() {
+ // Does nothing
+ }
+
+ @Override
+ public void add(StringBuilder pBuffer, List<Object> pParameters)
+ throws SQLException, JAXRException {
+ pBuffer.append("cl.num"); //$NON-NLS-1$
+ }
+}
Added: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/OrderPredicate.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/OrderPredicate.java?rev=810092&view=auto
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/OrderPredicate.java (added)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/OrderPredicate.java Tue Sep 1 15:17:37 2009
@@ -0,0 +1,10 @@
+package org.apache.labs.jaxmas.registry.sql;
+
+
+/**
+ * Marker interface, which indicates that this predicate is used
+ * in an order by clause.
+ */
+public interface OrderPredicate extends Predicate {
+ // No additional methods, or fields.
+}
Modified: labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java?rev=810092&r1=810091&r2=810092&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/main/java/org/apache/labs/jaxmas/registry/sql/RegistryObjectLoader.java Tue Sep 1 15:17:37 2009
@@ -214,8 +214,8 @@
@Override
protected int addColumns(StringBuilder pBuilder, int pIndex) {
- pBuilder.append(", assoc.roKeyTarget, assoc.roKeyType"); //$NON-NLS-1$
- return pIndex + 2;
+ pBuilder.append(", assoc.roKeyTarget, assoc.roKeyType, assoc.num"); //$NON-NLS-1$
+ return pIndex + 3;
}
@Override
@@ -239,6 +239,8 @@
final String typeKey = pResultSet.getString(pIndex+1);
assert(typeKey != null);
assoc.setAssociationTypeKey(new KeyImpl(typeKey));
+ assoc.setNum(pResultSet.getInt(pIndex+2));
+ assert(!pResultSet.wasNull());
}
}
}
@@ -256,8 +258,8 @@
@Override
protected int addColumns(StringBuilder pBuilder, int pIndex) {
- pBuilder.append(", cl.roKeyConcept"); //$NON-NLS-1$
- return pIndex + 1;
+ pBuilder.append(", cl.roKeyConcept, cl.num"); //$NON-NLS-1$
+ return pIndex + 2;
}
@Override
@@ -278,6 +280,8 @@
final String conceptKey = pResultSet.getString(pIndex);
assert(conceptKey != null);
cl.setConceptKey(new KeyImpl(conceptKey));
+ cl.setNum(pResultSet.getInt(pIndex+1));
+ assert(!pResultSet.wasNull());
}
}
}
@@ -376,6 +380,9 @@
if (predicate instanceof RegistryObjectTypePredicate) {
continue;
}
+ if (predicate instanceof OrderPredicate) {
+ continue;
+ }
if (numPredicates++ == 0) {
sb.append(" WHERE "); //$NON-NLS-1$
} else {
@@ -383,6 +390,17 @@
}
predicate.add(sb, parameterList);
}
+ int i = 0;
+ for (Predicate predicate : pPredicates) {
+ if (predicate instanceof OrderPredicate) {
+ if (i++ == 0) {
+ sb.append(" ORDER BY "); //$NON-NLS-1$
+ } else {
+ sb.append(", "); //$NON-NLS-1$
+ }
+ predicate.add(sb, parameterList);
+ }
+ }
}
parameters = parameterList.toArray();
query = sb.toString();
@@ -413,19 +431,33 @@
final StringBuilder sb) throws JAXRException {
final List<Object> params = new ArrayList<Object>(Arrays.asList(parameters));
int numPreds = numPredicates;
- for (Predicate predicate : pPredicates) {
- if (predicate instanceof RegistryObjectTypePredicate) {
- if (((RegistryObjectTypePredicate) predicate).getType() == objectType) {
- continue;
- }
- throw new IllegalStateException("A different object type must not be specified."); //$NON-NLS-1$
- }
- sb.append((numPreds++ == 0) ? " WHERE " : " AND "); //$NON-NLS-1$ //$NON-NLS-2$
- try {
- predicate.add(sb, params);
- } catch (SQLException e) {
- throw new JAXRException(e);
- }
+ try {
+ for (Predicate predicate : pPredicates) {
+ if (predicate instanceof RegistryObjectTypePredicate) {
+ if (((RegistryObjectTypePredicate) predicate).getType() == objectType) {
+ continue;
+ }
+ throw new IllegalStateException("A different object type must not be specified."); //$NON-NLS-1$
+ }
+ if (predicate instanceof OrderPredicate) {
+ continue;
+ }
+ sb.append((numPreds++ == 0) ? " WHERE " : " AND "); //$NON-NLS-1$ //$NON-NLS-2$
+ predicate.add(sb, params);
+ }
+ int i = 0;
+ for (Predicate predicate : pPredicates) {
+ if (predicate instanceof OrderPredicate) {
+ if (i++ == 0) {
+ sb.append(" ORDER BY "); //$NON-NLS-1$
+ } else {
+ sb.append(", "); //$NON-NLS-1$
+ }
+ predicate.add(sb, params);
+ }
+ }
+ } catch (SQLException e) {
+ throw new JAXRException(e);
}
return params;
}
Modified: labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/TaxonomiesTestCase.java
URL: http://svn.apache.org/viewvc/labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/TaxonomiesTestCase.java?rev=810092&r1=810091&r2=810092&view=diff
==============================================================================
--- labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/TaxonomiesTestCase.java (original)
+++ labs/jaxmas/trunk/JaxMas/src/test/java/org/apache/labs/jaxmas/registry/TaxonomiesTestCase.java Tue Sep 1 15:17:37 2009
@@ -235,16 +235,17 @@
public void testClassifications() throws Exception {
removeExistingClassificationScheme();
final Concept concept = createConcept();
- getBusinessLifecycleManager().saveObjects(Collections.singleton(concept));
- final RegistryEntry re = (RegistryEntry) getBusinessLifecycleManager().createObject(LifeCycleManager.REGISTRY_ENTRY);
+ final BusinessLifeCycleManager blcm = getBusinessLifecycleManager();
+ blcm.saveObjects(Collections.singleton(concept));
+ final RegistryEntry re = (RegistryEntry) blcm.createObject(LifeCycleManager.REGISTRY_ENTRY);
assertNotNull(re);
- final Classification cl = getBusinessLifecycleManager().createClassification(concept);
+ final Classification cl = blcm.createClassification(concept);
assertNotNull(cl);
re.addClassification(cl);
assertEquals(concept.getValue(), cl.getValue());
assertEquals(concept.getKey(), cl.getConcept().getKey());
assertEquals(concept.getClassificationScheme().getKey(), cl.getClassificationScheme().getKey());
- getBusinessLifecycleManager().saveObjects(Collections.singleton(re));
+ blcm.saveObjects(Collections.singleton(re));
final RegistryEntry reOther = (RegistryEntry) getBusinessQueryManager().getRegistryObject(re.getKey().getId());
assertNotNull(reOther);
boolean found = false;
@@ -259,7 +260,7 @@
}
}
assertTrue(found);
- getBusinessLifecycleManager().deleteObjects(Collections.singleton(re.getKey()));
+ blcm.deleteObjects(Collections.singleton(re.getKey()));
deleteClassificationScheme(concept.getClassificationScheme());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org