/**
  * Remove an Agent member or a Group from this Group. If the Agent or Group
  * is not in this group no action is taken and no exception is thrown.
  * 
  * @param object Agent $memberOrGroup
  * 
  * @throws object AgentException An exception with one of the
  *		   following messages defined in org.osid.agent.AgentException may
  *		   be thrown:  {@link
  *		   org.osid.agent.AgentException#OPERATION_FAILED
  *		   OPERATION_FAILED}, {@link
  *		   org.osid.agent.AgentException#PERMISSION_DENIED
  *		   PERMISSION_DENIED}, {@link
  *		   org.osid.agent.AgentException#CONFIGURATION_ERROR
  *		   CONFIGURATION_ERROR}, {@link
  *		   org.osid.agent.AgentException#UNIMPLEMENTED UNIMPLEMENTED},
  *		   {@link org.osid.agent.AgentException#UNKNOWN_ID UNKNOWN_ID},
  *		   {@link org.osid.agent.AgentException#NULL_ARGUMENT
  *		   NULL_ARGUMENT}
  * 
  * @access public
  */
 function remove(Agent $memberOrGroup)
 {
     throwError(new Error(AgentException::PERMISSION_DENIED(), "UsersGroup", true));
 }
 /**
  * Get all the groups with the specified search criteria and search Type.
  * 
  * @param object mixed $searchCriteria (original type: java.io.Serializable)
  * @param object Type $groupSearchType
  *	
  * @return object AgentIterator
  * 
  * @throws object AgentException An exception with one of the
  *		   following messages defined in org.osid.agent.AgentException may
  *		   be thrown:  {@link
  *		   org.osid.agent.AgentException#OPERATION_FAILED
  *		   OPERATION_FAILED}, {@link
  *		   org.osid.agent.AgentException#PERMISSION_DENIED
  *		   PERMISSION_DENIED}, {@link
  *		   org.osid.agent.AgentException#CONFIGURATION_ERROR
  *		   CONFIGURATION_ERROR}, {@link
  *		   org.osid.agent.AgentException#UNIMPLEMENTED UNIMPLEMENTED},
  *		   {@link org.osid.agent.AgentException#NULL_ARGUMENT
  *		   NULL_ARGUMENT}, {@link
  *		   org.osid.agent.AgentException#UNKNOWN_TYPE UNKNOWN_TYPE}
  * 
  * @access public
  */
 function getGroupsBySearch($searchCriteria, Type $groupSearchType)
 {
     $typeString = $groupSearchType->getDomain() . "::" . $groupSearchType->getAuthority() . "::" . $groupSearchType->getKeyword();
     // get the Group Search object
     $groupSearch = $this->_groupSearches[$typeString];
     if (!is_object($groupSearch)) {
         throwError(new Error(AgentException::UNKNOWN_TYPE() . ", " . $groupSearchType->asString(), "GroupManager", true));
     }
     return $groupSearch->getGroupsBySearch($searchCriteria);
 }