public Response get(@QueryParam("pattern") String patternParam,
@QueryParam("members") String membersParam,
@QueryParam("user") String userParam)
{
List<GroupEntity> res;
GroupDAO groups = new GroupDAO(emf);
// whether or not to include members
boolean members = true;
if (membersParam != null) {
members = Boolean.parseBoolean(membersParam);
}
// fdin the group by user, pattern or all groups
if (userParam != null) {
// if a user was specified, find all that user's groups
res = groups.findGroupsForMember(userParam);
} else if (patternParam == null) {
// if no user or pattern was specified, get all groups
res = groups.getGroups();
} else {
// if a pattern was specified, search by pattern
try {
patternParam = URLDecoder.decode(patternParam, "UTF-8");
patternParam = patternParam.replace('*', '%');
res = groups.findGroups(patternParam);
} catch (UnsupportedEncodingException uee) {
uee.printStackTrace();
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
}