@Override public Object retrieve(String field) { if (field == null) { return null; } else if (field.equals(ID)) { return getId(); } else if (field.equals(VERSION)) { return getVersion(); } else if (field.equals(PARENT)) { return getParent(); } else if (field.equals(CHILD)) { return getChild(); } else if (field.equals(OWNER)) { return getOwner(); } else if (field.equals(DETAILS)) { return getDetails(); } else { if (_dynamicFields != null) { return _dynamicFields.get(field); } return null; } }
public ome.model.meta.GroupExperimenterMap newInstance() { return new ome.model.meta.GroupExperimenterMap(); }
/** * Main constructor. */ public GroupExperimenterMap (Long id, boolean loaded) { setId(id); if (loaded) { getDetails().setContext(this); } else { if (this.id == null) { throw new ApiUsageException("Id cannot be null for a proxy"); } unload(); } }
@Override public void putAt(String field, Object value) { if (field == null) { return; } else if (field.equals(ID)) { setId((Long) value); } else if (field.equals(VERSION)) { setVersion((Integer) value); } else if (field.equals(PARENT)) { setParent((IObject)value); } else if (field.equals(CHILD)) { setChild((IObject)value); } else if (field.equals(OWNER)) { setOwner((java.lang.Boolean)value); } else if (field.equals(DETAILS)) { setDetails((ome.model.internal.Details)value); } else { if (_dynamicFields == null) { _dynamicFields = new java.util.HashMap<String, Object>(); } _dynamicFields.put(field,value); } }
protected GroupExperimenterMap linkGroupAndUser(ExperimenterGroup group, Experimenter e, boolean owned) { if (group == null || group.getId() == null) { throw new ApiUsageException("Group must be persistent."); } group = new ExperimenterGroup(group.getId(), false); // ticket:1021 - check for already added groups for (GroupExperimenterMap link : e.unmodifiableGroupExperimenterMap()) { ExperimenterGroup test = link.parent(); if (test.getId().equals(group.getId())) { return link; // EARLY EXIT! } } GroupExperimenterMap link = e.linkExperimenterGroup(group); // ticket:1434 link.setOwner(owned); link.getDetails().copy(sec.newTransientDetails(link)); Session session = sf.getSession(); sec.<IObject> doAction(new SecureMerge(session), userById(e.getId(), session), link); session.flush(); return link; }
/** * find all ome.model.meta.GroupExperimenterMap which have the argument as their parent. */ public java.util.Set<ome.model.meta.GroupExperimenterMap> findGroupExperimenterMap( ome.model.meta.ExperimenterGroup target ) { if (! _loaded ) errorIfUnloaded(); final java.util.Iterator<ome.model.meta.GroupExperimenterMap> it = iterateGroupExperimenterMap(); final java.util.Set<ome.model.meta.GroupExperimenterMap> result = new java.util.HashSet<ome.model.meta.GroupExperimenterMap>(); while ( it.hasNext() ) { ome.model.meta.GroupExperimenterMap link = it.next(); if ( link.parent() == target ) { result.add( link ); } } return result; }
/** * find all ome.model.meta.GroupExperimenterMap which have the argument as their child. */ public java.util.Set<ome.model.meta.GroupExperimenterMap> findGroupExperimenterMap( ome.model.meta.Experimenter target ) { if (! _loaded ) errorIfUnloaded(); final java.util.Iterator<ome.model.meta.GroupExperimenterMap> it = iterateGroupExperimenterMap(); final java.util.Set<ome.model.meta.GroupExperimenterMap> result = new java.util.HashSet<ome.model.meta.GroupExperimenterMap>(); while ( it.hasNext() ) { ome.model.meta.GroupExperimenterMap link = it.next(); if ( link.child() == target ) { result.add( link ); } } return result; }
/** * Use the {@link ome.model.internal.Details#copy(ome.model.internal.Details)} * or {@link ome.model.internal.Details#shallowCopy(ome.model.internal.Details)} * methods to set the {@link Details} instance instead. */ protected void setDetails(ome.model.internal.Details details) { if (! _loaded ) errorIfUnloaded(); this.details = (Details) details; }
/** * Adds a ome.model.meta.GroupExperimenterMap to groupExperimenterMap . This entails changing our groupExperimenterMap Set, * creating a new ome.model.meta.GroupExperimenterMap and calling linkExperimenter on the ome.model.meta.Experimenter. */ public ome.model.meta.GroupExperimenterMap linkExperimenter (ome.model.meta.Experimenter addition) { if (! _loaded ) errorIfUnloaded(); // Setup link ome.model.meta.GroupExperimenterMap link = new ome.model.meta.GroupExperimenterMap(); link.link( this, addition ); // Add it to us and possibly the other side. addGroupExperimenterMap( link, true ); return link; }
public ome.model.meta.Experimenter child() { return (ome.model.meta.Experimenter) getChild(); }
public void setGroupOwner(Experimenter user, ExperimenterGroup group, boolean value) { Session session = sf.getSession(); Experimenter foundUser = userById(user.getId(), session); ExperimenterGroup foundGroup = groupById(group.getId(), session); Set<GroupExperimenterMap> foundMaps = foundUser .findGroupExperimenterMap(foundGroup); if (foundMaps.size() < 1) { throw new ApiUsageException("Group " + group.getId() + " was not " + "found for user " + user.getId()); } else if (foundMaps.size() > 1) { log.warn(foundMaps.size() + " copies of " + foundGroup + " found for " + foundUser); } else { // May throw an exception GroupExperimenterMap newDef = foundMaps.iterator().next(); log.info(String.format("Seeting ownership flag on user %s to %s for %s", foundUser.getId(), value, group.getId())); newDef.setOwner(value); sec.doAction(new SecureMerge(session), newDef); } }
public ome.model.meta.ExperimenterGroup parent() { return (ome.model.meta.ExperimenterGroup) getParent(); }
/** * Adds a ome.model.meta.GroupExperimenterMap to groupExperimenterMap, allowing for recursion -- whether * or not addGroupExperimenterMap will be called on the addition <b>if it is loaded</b> */ public void addGroupExperimenterMap (ome.model.meta.GroupExperimenterMap link, boolean bothSides) { if (! _loaded ) errorIfUnloaded(); if ( getGroupExperimenterMap() == null ) { throwNullCollectionException("GroupExperimenterMap"); } getGroupExperimenterMap().add( link ); if ( bothSides && link.parent().isLoaded() ) { link.parent().addGroupExperimenterMap( link, false ); } }
/** * removes the given GroupExperimenterMap from groupExperimenterMap, allowing for recursion -- whether * or not the removal will call unlinkExperimenterGroup again <b>if loaded</b>. */ public void removeGroupExperimenterMap (ome.model.meta.GroupExperimenterMap link, boolean bothSides) { if (! _loaded ) errorIfUnloaded(); if ( getGroupExperimenterMap() == null ) { throwNullCollectionException("GroupExperimenterMap"); } getGroupExperimenterMap().remove( link ); if ( bothSides && link.child().isLoaded() ) { link.child().removeGroupExperimenterMap( link, false ); } }
public void setChild(IObject child) { if (! _loaded ) errorIfUnloaded(); this.child = child; } protected java.lang.Boolean owner = null;
/** * Adds a ome.model.meta.GroupExperimenterMap to groupExperimenterMap . This entails changing our groupExperimenterMap Set, * creating a new ome.model.meta.GroupExperimenterMap and calling linkExperimenterGroup on the ome.model.meta.ExperimenterGroup. */ public ome.model.meta.GroupExperimenterMap linkExperimenterGroup (ome.model.meta.ExperimenterGroup addition) { if (! _loaded ) errorIfUnloaded(); // Setup link ome.model.meta.GroupExperimenterMap link = new ome.model.meta.GroupExperimenterMap(); link.link( addition, this ); // Add it to us and possibly the other side. addGroupExperimenterMap( link, true ); return link; }
@Override @RolesAllowed("user") public List<Experimenter> getAdminsWithPrivileges(List<AdminPrivilege> privileges) { assertKnownPrivileges(privileges); final List<Experimenter> admins = new ArrayList<Experimenter>(); final long systemGroupId = getSecurityRoles().getSystemGroupId(); final Iterator<GroupExperimenterMap> memberships = getGroup(systemGroupId).iterateGroupExperimenterMap(); while (memberships.hasNext()) { boolean hasPrivileges = true; final Experimenter admin = userProxy(memberships.next().getChild().getId()); final List<AdminPrivilege> privilegesOfAdmin = getAdminPrivileges(admin); for (final AdminPrivilege privilege : privileges) { if (!privilegesOfAdmin.contains(privilege)) { hasPrivileges = false; break; } } if (hasPrivileges) { admins.add(admin); } } return admins; }
m = findLink(group, owner); m.setOwner(value); getSecuritySystem().runAsAdmin(new AdminAction() { public void runAsAdmin() {