public Collection getChildContainerNodes(Integer parentNode) {
    ArrayList ret = new ArrayList();
    cacheLeafs = new ArrayList();

    List children = null;
    try {
      children =
          (ROOT.equals(parentNode))
              ? controller.findRootCategories()
              : controller.findActiveByParent(parentNode);
    } catch (SystemException e) {
      logger.warn("Error getting Category Children", e);
    }

    for (Iterator i = children.iterator(); i.hasNext(); ) {
      CategoryVO vo = (CategoryVO) i.next();

      List grandkids = getGrandKids(vo.getId());

      BaseNode node = new CategoryNodeImpl();
      node.setId(vo.getId());
      node.setTitle(vo.getName());
      node.setContainer(true);
      node.setChildren(!grandkids.isEmpty());
      ret.add(node);
    }

    return ret;
  }
 public PropertiesCategoryVO(
     String attributeName, String entityName, Integer entityId, CategoryVO category) {
   setAttributeName(attributeName);
   setEntityName(entityName);
   setEntityId(entityId);
   if (category != null) setCategoryId(category.getId());
   setCategory(category);
 }
 public boolean equals(Object o) {
   if (super.equals(o)) {
     PropertiesCategoryVO vo = (PropertiesCategoryVO) o;
     return DomainUtils.equals(propertiesCategoryId, vo.propertiesCategoryId)
         && DomainUtils.equals(attributeName, vo.attributeName)
         && DomainUtils.equals(entityName, vo.entityName)
         && DomainUtils.equals(entityId, vo.entityId)
         && DomainUtils.equals(category.getId(), vo.category.getId());
   }
   return false;
 }
 public StringBuffer toStringBuffer() {
   StringBuffer sb = super.toStringBuffer();
   sb.append(" attributeName=")
       .append(attributeName)
       .append(" entityName=")
       .append(entityName)
       .append(" entityId=")
       .append(entityId)
       .append(" categoryId=")
       .append(category.getId());
   return sb;
 }