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. |