code: public List<CmsRole> getChildren(boolean recursive) {
  
          List<CmsRole> children = new ArrayList<CmsRole>();
          Iterator<CmsRole> itChildren = m_children.iterator();
          while (itChildren.hasNext()) {
              CmsRole child = itChildren.next();
              if (child.isOrganizationalUnitIndependent()) {
                  child = child.forOrgUnit(null);
              } else {
                  child = child.forOrgUnit(m_ouFqn);
              }
              children.add(child);
              if (recursive) {
                  for (CmsRole grandChild : child.getChildren(true)) {
                      if (!children.contains(grandChild)) {
                          children.add(grandChild);
                      }
                  }
              }
          }
          return children;
      }
docs: Returns a list of all sub roles.<p>
  
  @param recursive if not set just direct children are returned
  
  @return all sub roles as a list of {@link CmsRole} objects