/** Fetch the current group row from a resultSet. */ protected Group fetchGroup(ResultSet rs) throws SQLException { Group g = new Group(); g.setSpecificId(Integer.toString(rs.getInt(1))); g.setSuperGroupId(Integer.toString(rs.getInt(2))); if (rs.wasNull()) g.setSuperGroupId(null); g.setName(rs.getString(3)); g.setDescription(rs.getString(4)); return g; }
/** * Get group information with the given id from Silverpeas * * @param ddManager * @param sGroupId * @return * @throws AdminException */ public Group getGroup(DomainDriverManager ddManager, String sGroupId) throws AdminException { try { ddManager.getOrganizationSchema(); GroupRow gr = ddManager.getOrganization().group.getGroup(idAsInt(sGroupId)); Group group = new Group(); if (gr != null) { group.setId(idAsString(gr.id)); group.setSpecificId(gr.specificId); group.setDomainId(idAsString(gr.domainId)); group.setSuperGroupId(idAsString(gr.superGroupId)); group.setName(gr.name); group.setDescription(gr.description); group.setRule(gr.rule); } // Get the selected users for this group setDirectUsersOfGroup(ddManager, group); return group; } catch (Exception e) { throw new AdminException( "GroupManager.getGroup", SilverpeasException.ERROR, "admin.EX_ERR_GET_GROUP", "group Id: '" + sGroupId + "'", e); } finally { ddManager.releaseOrganizationSchema(); } }
/** * @param group * @return * @throws Exception */ @Override public String createGroup(Group group) throws Exception { Group specificGroup = new Group(group); try { // Set supergroup specific Id if (StringUtil.isDefined(group.getSuperGroupId())) { // Get the user information GroupRow gr = getOrganization().group.getGroup(idAsInt(group.getSuperGroupId())); if (gr == null) { throw new AdminException( "DomainDriverManager.createGroup", SilverpeasException.ERROR, "admin.EX_ERR_GROUP_NOT_FOUND", "group Id: '" + group.getSuperGroupId() + "'"); } specificGroup.setSuperGroupId(gr.specificId); } // Set subUsers specific Id specificGroup.setUserIds( translateUserIdsToSpecificIds(idAsInt(group.getDomainId()), group.getUserIds())); // Get a DomainDriver instance DomainDriver domainDriver = this.getDomainDriver(idAsInt(group.getDomainId())); // Update Group in specific domain return domainDriver.createGroup(specificGroup); } catch (AdminException e) { throw new AdminException( "DomainDriverManager.createGroup", SilverpeasException.ERROR, "admin.EX_ERR_UPDATE_GROUP", "group Id: '" + group.getId() + "'", e); } }
/** Convert GroupRow to Group */ private Group groupRow2Group(GroupRow gr) { Group group = new Group(); if (gr != null) { group.setId(idAsString(gr.id)); group.setSpecificId(gr.specificId); group.setDomainId(idAsString(gr.domainId)); group.setSuperGroupId(idAsString(gr.superGroupId)); group.setName(gr.name); group.setDescription(gr.description); group.setRule(gr.rule); } return group; }