|
From: <ro...@us...> - 2009-03-10 10:14:49
|
Revision: 69
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=69&view=rev
Author: roekens
Date: 2009-03-10 10:14:25 +0000 (Tue, 10 Mar 2009)
Log Message:
-----------
- introduced convenience method for adding child categories to parent categories
- bugfixed cascading in categories
- enhanced category tests
Modified Paths:
--------------
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-09 18:09:08 UTC (rev 68)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-10 10:14:25 UTC (rev 69)
@@ -1,5 +1,6 @@
package de.campussource.cse.cdmm.domain;
+import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
@@ -27,11 +28,11 @@
@XmlType(propOrder={Constants.PROPERTY_PARENT, Constants.PROPERTY_CHILDREN, Constants.PROPERTY_COURSES}, namespace=Constants.NAMESPACE_DATATYPES)
public class Category extends de.campussource.cse.cdmm.domain.Entity {
- @ManyToOne(cascade={CascadeType.REMOVE})
+ @ManyToOne(cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinTable(name = Constants.COLUMNNAME_CATEGORY2CATEGORY)
private Category parent;
- @OneToMany(mappedBy=Constants.PARENT, cascade={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
+ @OneToMany(mappedBy=Constants.PARENT, cascade={CascadeType.REMOVE})
private List<Category> children;
@ManyToMany(mappedBy=Constants.CATEGORIES)
@@ -51,7 +52,17 @@
this.parent = parent;
}
+ public boolean addChild(Category category){
+ if (this.children == null){
+ this.children = new ArrayList<Category>();
+ }
+ if (!category.getParent().equals(this)){
+ return false;
+ }
+ return this.children.add(category);
+ }
+
@XmlElementWrapper(name=Constants.CATEGORIES)
@XmlElement(name=Constants.CATEGORY)
public List<Category> getChildren() {
Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-09 18:09:08 UTC (rev 68)
+++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-10 10:14:25 UTC (rev 69)
@@ -58,9 +58,13 @@
@Test
public void testCascading(){
category.setParent(parentCategory);
+ parentCategory.addChild(category);
dao.persist(category);
+ txCommit();
assertNotNull(category.getId());
assertNotNull(parentCategory.getId());
+ assertEquals(category.getParent(), parentCategory);
+ assertEquals(parentCategory.getChildren().get(0), category);
dao.remove(parentCategory);
assertNull(dao.find(parentCategory.getId()));
assertNull(dao.find(category.getId()));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|