package fi.otavanopisto.muikku.users; import java.util.logging.Logger; import javax.inject.Inject; import fi.otavanopisto.muikku.dao.base.SchoolDataSourceDAO; import fi.otavanopisto.muikku.dao.users.RoleSchoolDataIdentifierDAO; import fi.otavanopisto.muikku.dao.workspace.WorkspaceRoleEntityDAO; import fi.otavanopisto.muikku.model.base.SchoolDataSource; import fi.otavanopisto.muikku.model.users.RoleEntity; import fi.otavanopisto.muikku.model.users.RoleSchoolDataIdentifier; import fi.otavanopisto.muikku.model.users.UserRoleType; import fi.otavanopisto.muikku.model.workspace.WorkspaceRoleArchetype; import fi.otavanopisto.muikku.model.workspace.WorkspaceRoleEntity; public class WorkspaceRoleEntityController { @Inject private Logger logger; @Inject private WorkspaceRoleEntityDAO workspaceRoleEntityDAO; @Inject private RoleSchoolDataIdentifierDAO roleSchoolDataIdentifierDAO; @Inject private SchoolDataSourceDAO schoolDataSourceDAO; public WorkspaceRoleEntity createWorkspaceRoleEntity(String dataSource, String identifier, WorkspaceRoleArchetype archetype, String name) { SchoolDataSource schoolDataSource = schoolDataSourceDAO.findByIdentifier(dataSource); if (schoolDataSource == null) { logger.severe("Could not find datasource " + dataSource); return null; } WorkspaceRoleEntity workspaceRoleEntity = workspaceRoleEntityDAO.create(archetype, name); roleSchoolDataIdentifierDAO.create(schoolDataSource, identifier, workspaceRoleEntity); return workspaceRoleEntity; } public WorkspaceRoleEntity findWorkspaceRoleEntityByDataSourceAndIdentifier(String dataSource, String identifier) { SchoolDataSource schoolDataSource = schoolDataSourceDAO.findByIdentifier(dataSource); if (schoolDataSource == null) { logger.severe("Could not find datasource " + dataSource); return null; } RoleSchoolDataIdentifier roleIdentifier = roleSchoolDataIdentifierDAO.findByDataSourceAndIdentifier(schoolDataSource, identifier); if (roleIdentifier != null) { RoleEntity roleEntity = roleIdentifier.getRoleEntity(); if (roleEntity != null && roleEntity.getType() == UserRoleType.WORKSPACE) { return (WorkspaceRoleEntity) roleEntity; } } return null; } }