{
user = JetspeedSecurity.getUser(new UserNamePrincipal(username));
}
catch(JetspeedSecurityException e)
{
throw new GroupException("Failed to Retrieve User: ", e);
}
Criteria criteria = new Criteria();
criteria.add(TurbineUserGroupRolePeer.USER_ID, user.getUserId());
List rels;
HashMap groups;
try
{
rels = TurbineUserGroupRolePeer.doSelect(criteria);
if (rels.size() > 0)
{
groups = new HashMap(rels.size());
}
else
groups = new HashMap();
for (int ix = 0; ix < rels.size(); ix++)
{
TurbineUserGroupRole rel = (TurbineUserGroupRole)rels.get(ix);
Group group = rel.getTurbineGroup();
groups.put(group.getName(), group);
}
}
catch(Exception e)
{
throw new GroupException("Failed to retrieve groups ", e);
}
return groups.values().iterator();
}