Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTO.java =================================================================== diff -u -r049f9b1332a5f65c5de9d5b4f891b93fe429ae63 -r1ca5202767bc23a8aa70f2be94a7267f176250cb --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTO.java (.../OrganisationDTO.java) (revision 049f9b1332a5f65c5de9d5b4f891b93fe429ae63) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/dto/OrganisationDTO.java (.../OrganisationDTO.java) (revision 1ca5202767bc23a8aa70f2be94a7267f176250cb) @@ -23,42 +23,45 @@ /* $Id$ */ package org.lamsfoundation.lams.usermanagement.dto; + import java.util.Collection; -import java.util.TreeMap; +import java.util.Iterator; +import java.util.Vector; +import org.apache.commons.lang.builder.HashCodeBuilder; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.util.wddx.WDDXTAGS; + /** * @author Manpreet Minhas */ public class OrganisationDTO { private Integer organisationID; - private TreeMap childOrganisations; + private Integer parentID; private String name; private String description; - private Integer parentID; + private Vector nodes; public OrganisationDTO(){ } - public OrganisationDTO(Integer organisationID, Integer parentID, String description, String name) { + public OrganisationDTO(Integer organisationID, Integer parentID, String name, + String description) { super(); this.organisationID = organisationID; + this.parentID = parentID; this.name = name; this.description = description; - this.childOrganisations = new TreeMap(); - this.parentID = parentID; + this.nodes = new Vector(); } - public OrganisationDTO(Organisation organisation){ this.organisationID = organisation.getOrganisationId(); + this.parentID = organisation.getParentOrganisation().getOrganisationId(); this.name = organisation.getName(); this.description = organisation.getDescription(); - this.childOrganisations = new TreeMap(); - if ( organisation.getParentOrganisation() != null ) - this.parentID = organisation.getParentOrganisation().getOrganisationId(); + this.nodes = new Vector(); } /** * @return Returns the description. @@ -78,19 +81,44 @@ public Integer getOrganisationID() { return organisationID!=null?organisationID:WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER; } - - /** Gets all the child organisations. This is a recursive structure */ - public Collection getChildOrganisations() { - return childOrganisations.values(); + + /** + * @return Returns the parent organisationID. + */ + public Integer getParentID() { + return parentID!=null?parentID:WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER; } - /** Add a child organisation. Adds it into a sorted map so that the values always come out - * in the same order. */ - public void addChildOrganisation(OrganisationDTO orgDTO) { - childOrganisations.put(orgDTO.getOrganisationID(),orgDTO); + public void addNode(OrganisationDTO organisation){ + nodes.add(organisation); } - public Integer getParentID() { - return parentID; + + public void addNodes(Collection list){ + Iterator it = list.iterator(); + while(it.hasNext()){ + this.addNode((OrganisationDTO) it.next()); + } } + public Vector getNodes(){ + return nodes; + } + + /** Two OrganisationDTOs are equals if both have a valid (not null) organisationID + * and the organisationID's are the same. + */ + public boolean equals(Object other) { + if ((this == other)) + return true; + if (!(other instanceof OrganisationDTO)) + return false; + OrganisationDTO castOther = (OrganisationDTO) other; + return this.getOrganisationID() != null && + this.getOrganisationID().equals(castOther.getOrganisationID()); + } + + public int hashCode() { + return new HashCodeBuilder().append(getOrganisationID()).toHashCode(); + } + }