From: <ro...@us...> - 2009-03-04 14:09:21
|
Revision: 51 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=51&view=rev Author: roekens Date: 2009-03-04 14:09:18 +0000 (Wed, 04 Mar 2009) Log Message: ----------- - moved jaxb annotations from attributes to getters in EntityContainer class to prevent unnecessary use of @XmlTransient - added constructors (for creating of objects with set id) - fix for xml structure, accounts and groups are bundled and categories are defined in hierarchy Modified Paths: -------------- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 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/Course.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-04 12:48:28 UTC (rev 50) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-04 14:09:18 UTC (rev 51) @@ -37,6 +37,10 @@ public Account(){ } + public Account(Long id){ + setId(id); + } + public Account(Long id, List<Group> groups, List<Role> roles){ setId(id); this.groups = groups; 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-04 12:48:28 UTC (rev 50) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-04 14:09:18 UTC (rev 51) @@ -40,6 +40,10 @@ public Category() { } + public Category(Long id){ + setId(id); + } + public Category(Long id, List<Category> children, List<Course> courses, List<Category> parents){ setId(id); this.children = children; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-04 12:48:28 UTC (rev 50) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-04 14:09:18 UTC (rev 51) @@ -48,6 +48,10 @@ public Course(){ } + public Course(Long id){ + setId(id); + } + public Course(Long id, List<Category> categories, Course parent, List<Role> roles, List<Course> workgroups){ setId(id); this.categories = categories; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-04 12:48:28 UTC (rev 50) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-04 14:09:18 UTC (rev 51) @@ -6,7 +6,6 @@ import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlElements; import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang.builder.ToStringBuilder; @@ -18,34 +17,12 @@ @XmlType(namespace=Constants.NAMESPACE_DATATYPES) public class EntityContainer{ - @XmlElementWrapper(name="entities") - @XmlElement(name="entity") - private List<Entity> entities; + private Category rootCategory; - @XmlElementWrapper(name="categories") - @XmlElement(name="category") - private List<Category> categories; - - @XmlElementWrapper(name="courses") - @XmlElement(name="course") private List<Course> courses; - @XmlElementWrapper(name="accounts") - @XmlElements(value= {@XmlElement(name="account",type=Account.class),@XmlElement(name="group",type=Group.class)}) private List<Account> accounts; - @XmlElementWrapper(name="groups") - @XmlElement(name="group") - private List<Group> groups; - - public void setEntities(List<Entity> entities) { - this.entities = entities; - } - - public void setCategories(List<Category> categories) { - this.categories = categories; - } - public void setCourses(List<Course> courses) { this.courses = courses; } @@ -54,40 +31,32 @@ this.accounts = accounts; } - public void setGroups(List<Group> groups) { - this.groups = groups; + @XmlElement(name="category") + public Category getRootCategory() { + return rootCategory; } - @XmlTransient - public List<Entity> getEntities() { - return entities; - } - - @XmlTransient - public List<Category> getCategories() { - return categories; - } - - @XmlTransient + @XmlElementWrapper(name="courses") + @XmlElement(name="course") public List<Course> getCourses() { return courses; } - @XmlTransient + @XmlElementWrapper(name="accounts") + @XmlElements(value= {@XmlElement(name="account",type=Account.class), @XmlElement(name="group",type=Group.class)}) public List<Account> getAccounts() { return accounts; } - @XmlTransient - public List<Group> getGroups() { - return groups; - } - @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE).append(categories.toArray()).append(courses.toArray()).append(accounts.toArray()).append(groups.toArray()).toString(); + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE).append(rootCategory).append(courses.toArray()).append(accounts.toArray()).toString(); } + + public void setRootCategory(Category rootCategory) { + this.rootCategory = rootCategory; + } Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-04 12:48:28 UTC (rev 50) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-04 14:09:18 UTC (rev 51) @@ -30,6 +30,10 @@ public Group(){ } + public Group(Long id){ + setId(id); + } + public Group(Long id, List<Account> members){ setId(id); this.members = members; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-04 12:48:28 UTC (rev 50) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-04 14:09:18 UTC (rev 51) @@ -42,6 +42,15 @@ this.course = course; } + public Role(Long id, RoleType type){ + setId(id); + this.type = type; + } + + public Role(Long id) { + setId(id); + } + @XmlElement public RoleType getType() { return type; Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-04 12:48:28 UTC (rev 50) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/TestXmlConversion.java 2009-03-04 14:09:18 UTC (rev 51) @@ -15,6 +15,7 @@ import javax.xml.transform.Result; import javax.xml.transform.dom.DOMResult; +import org.junit.Test; import org.w3c.dom.Document; import com.sun.org.apache.xml.internal.serialize.OutputFormat; @@ -40,6 +41,7 @@ return currentTimeMillis++; } + @Test public void testConversionSimple(){ Marshaller marshaller=null; JAXBContext context=null; @@ -107,41 +109,53 @@ } private EntityContainer generateTestStructure() { - Category categoryA = new Category(); - categoryA.setId(createUniqueId()); + //create small category structure: parentCategory -> childCategory + Category parentCategory = new Category(createUniqueId()); + Category childCategory = new Category(createUniqueId()); + + List<Category> parentCategoryList = new ArrayList<Category>(); + parentCategoryList.add(parentCategory); - Category categoryB = new Category(); - categoryB.setId(createUniqueId()); - List<Category> parentCategory = new ArrayList<Category>(); - parentCategory.add(categoryA); - List<Category> childCategory = new ArrayList<Category>(); - childCategory.add(categoryB); - categoryB.setParents(parentCategory); - categoryA.setChildren(childCategory); + List<Category> childCategoryList = new ArrayList<Category>(); + childCategoryList.add(childCategory); - Course course = new Course(); - course.setId(createUniqueId()); - course.setCategories(parentCategory); - - List<Course> cl = new ArrayList<Course>(); cl.add(course); - categoryA.setCourses(cl); + parentCategory.setChildren(childCategoryList); + childCategory.setParents(parentCategoryList); - Account account = new Account(); - account.setId(createUniqueId()); + + //create Course with one child workgroup + Course course = new Course(createUniqueId()); + course.setCategories(parentCategoryList); + + Course workgroup = new Course(createUniqueId()); + workgroup.setParent(course); + workgroup.setRoles(null); + List<Course> workgroups = new ArrayList<Course>(); + workgroups.add(workgroup); + + course.setWorkgroups(workgroups); + + //add course to parent Category + List<Course> courses = new ArrayList<Course>(); + courses.add(course); + + parentCategory.setCourses(courses); + + //create account and a group and put account to group + Account account = new Account(createUniqueId()); List<Account> accounts= new ArrayList<Account>(); accounts.add(account); - Group group = new Group(); - group.setId(createUniqueId()); + Group group = new Group(createUniqueId()); + group.setMembers(accounts); List<Group> groups = new ArrayList<Group>(); groups.add(group); account.setGroups(groups); - group.setMembers(accounts); - - Role role = new Role(); - role.setId(createUniqueId()); + + //define role between account and course + Role role = new Role(createUniqueId()); role.setAccount(account); role.setCourse(course); role.setType(RoleType.ASSISTANT); @@ -151,23 +165,20 @@ account.setRoles(roles); course.setRoles(roles); + // put all created objects into entitycontainer + EntityContainer container = new EntityContainer(); List<Account> accs = new ArrayList<Account>(); - accs.add(account); + accs.add(account); + accs.add(group); container.setAccounts(accs); - List<Category> cats = new ArrayList<Category>(); - cats.add(categoryA); - container.setCategories(cats); + container.setRootCategory(parentCategory); List<Course> cous = new ArrayList<Course>(); cous.add(course); container.setCourses(cous); - List<Group> grps = new ArrayList<Group>(); - grps.add(group); - container.setGroups(grps); - return container; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |