From: <id...@us...> - 2009-04-27 11:32:07
|
Revision: 182 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=182&view=rev Author: idueppe Date: 2009-04-27 11:31:17 +0000 (Mon, 27 Apr 2009) Log Message: ----------- IN PROGRESS: Refactoring of cdmm... Should be compilable and tests are green Modified Paths: -------------- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/AddReferenceVisitor.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferenceType.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferencesVisitor.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Visitor.java Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/AddReferenceVisitor.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/AddReferenceVisitor.java 2009-04-27 11:30:54 UTC (rev 181) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/AddReferenceVisitor.java 2009-04-27 11:31:17 UTC (rev 182) @@ -4,8 +4,9 @@ /** * Visitor to add Reference to an entity object. + * * @author Ingo Dueppe - * + * */ public class AddReferenceVisitor implements Visitor { @@ -15,8 +16,10 @@ /** * - * @param target entity object to be add as reference - * @param type of reference that will be added + * @param target + * entity object to be add as reference + * @param type + * of reference that will be added */ public AddReferenceVisitor(Entity target, ReferenceType type) { this.type = type; @@ -31,25 +34,38 @@ @Override public void visit(Category category) { - // TODO Auto-generated method stub - throw new NotImplementedException(); + switch (type) { + case CATEGORY: + category.addToParentCategory((Category) target); + break; + case COURSE: + ((Course)target).addToCategory(category); + break; + case PARENT: + category.setParent((Category) target); + break; + default: + throw new IllegalStateException("Reference type doesn't apply to entity."); + } } @Override public void visit(Course course) { switch (type) { - case CATEGORY: - course.addToCategory((Category) target); - break; - case WORKGROUP: - ((Course) target).addAsWorkgroupTo(course); - break; - case PARENT: - course.setParent((Course) target); - break; - case ROLE: - course.addRole((Role)target); - break; + case CATEGORY: + course.addToCategory((Category) target); + break; + case WORKGROUP: + ((Course) target).addAsWorkgroupTo(course); + break; + case PARENT: + course.setParent((Course) target); + break; + case ROLE: + course.addRole((Role) target); + break; + default: + throw new IllegalStateException("Reference type doesn't apply to entity."); } } Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferenceType.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferenceType.java 2009-04-27 11:30:54 UTC (rev 181) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferenceType.java 2009-04-27 11:31:17 UTC (rev 182) @@ -1,5 +1,11 @@ package de.campussource.cse.cdmm.domain; +/** + * Enumeration of all types of references between objects within the domain modell + * + * @author Ingo Dueppe + * + */ public enum ReferenceType { ACCOUNT, Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferencesVisitor.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferencesVisitor.java 2009-04-27 11:30:54 UTC (rev 181) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/ReferencesVisitor.java 2009-04-27 11:31:17 UTC (rev 182) @@ -10,6 +10,14 @@ */ public abstract class ReferencesVisitor implements Visitor { + /** + * Is call for each endpoint of outgoing references of an entity + * @param target entity of the reference + * @param source entity of the reference + */ + public abstract void foundReference(Entity target, Entity source, ReferenceType type); + + @Override public void visit(Account account) { for (Role role : account.getRoles()) { @@ -60,17 +68,12 @@ @Override public void visit(Role role) { - if (role.getCourse() != null) + if (role.getCourse() != null) { foundReference(role.getCourse(), role, ReferenceType.COURSE); - if (role.getAccount() != null) + } + if (role.getAccount() != null) { foundReference(role.getAccount(), role, ReferenceType.ACCOUNT); + } } - /** - * Is call for each endpoint of outgoing references of an entity - * @param target entity of the reference - * @param source entity of the reference - */ - public abstract void foundReference(Entity target, Entity source, ReferenceType type); - } Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Visitor.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Visitor.java 2009-04-27 11:30:54 UTC (rev 181) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Visitor.java 2009-04-27 11:31:17 UTC (rev 182) @@ -1,7 +1,8 @@ package de.campussource.cse.cdmm.domain; /** - * Visitor for Domain + * Visitor for domain object model + * * @author Ingo Dueppe * */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |