groupMap.link( getGroup(group.getId()), e);
groupMap.link( internalGetGroup(group.getId()), e);
    public Experimenter createExperimenter(Experimenter experimenter, ExperimenterGroup defaultGroup, ExperimenterGroup[] otherGroups)    {//    	 TODO check that no other group is default	    	Experimenter e = copyUser( experimenter );    	    	    	if ( defaultGroup == null || defaultGroup.getId() == null )    	{    		throw new ApiUsageException("Default group may not be null.");    	}     	GroupExperimenterMap defaultGroupMap = new GroupExperimenterMap();		defaultGroupMap.link( getGroup(defaultGroup.getId()), e);		defaultGroupMap.setDefaultGroupLink(Boolean.TRUE);		e.addGroupExperimenterMap(defaultGroupMap, false);    	if ( null != otherGroups )    	{    		for (ExperimenterGroup group : otherGroups) {    			if ( group == null ) continue;    			if ( group.getId() == null)    			{    				throw new ApiUsageException(    						"Groups must be previously saved during " +    						"Experimenter creation.");    			}    			GroupExperimenterMap groupMap = new GroupExperimenterMap();    			groupMap.link( getGroup(group.getId()), e);    			e.addGroupExperimenterMap(groupMap, false);    		}    	}    	    	e = iUpdate.saveAndReturnObject( e );    	changeUserPassword(e.getOmeName()," ");    	return lookupExperimenter(e.getOmeName());        }