/**
* Licensed to the Austrian Association for Software Tool Integration (AASTI)
* under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright
* ownership. The AASTI licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.openengsb.core.usersync.impl;
import java.util.List;
import org.openengsb.core.api.AliveState;
import org.openengsb.core.common.AbstractOpenEngSBService;
import org.openengsb.core.usersync.DataSynchronizer;
import org.openengsb.core.usersync.SynchronizedUserService;
import org.openengsb.domain.userprojects.model.Assignment;
import org.openengsb.domain.userprojects.model.Project;
import org.openengsb.domain.userprojects.model.Role;
import org.openengsb.domain.userprojects.model.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
public class SynchronizedUserServiceImpl extends AbstractOpenEngSBService implements SynchronizedUserService {
private static final Logger LOGGER = LoggerFactory.getLogger(SynchronizedUserServiceImpl.class);
private List<DataSynchronizer> dataSynchronizers;
@Override
public void checkinUser(User user) {
checkinUsers(Lists.newArrayList(user));
}
@Override
public void checkinUsers(List<User> users) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.checkinUsers(users);
}
}
@Override
public void deleteUser(User user) {
deleteUsers(Lists.newArrayList(user));
}
@Override
public void deleteUsers(List<User> users) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteUsers(users);
}
}
@Override
public void deleteUserByName(String userName) {
deleteUsersByName(Lists.newArrayList(userName));
}
@Override
public void deleteUsersByName(List<String> userNames) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteUsersByName(userNames);
}
}
@Override
public void checkinProject(Project project) {
checkinProjects(Lists.newArrayList(project));
}
@Override
public void checkinProjects(List<Project> projects) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.checkinProjects(projects);
}
}
@Override
public void deleteProject(Project project) {
deleteProjects(Lists.newArrayList(project));
}
@Override
public void deleteProjects(List<Project> projects) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteProjects(projects);
}
}
@Override
public void deleteProjectByName(String projectName) {
deleteProjectsByName(Lists.newArrayList(projectName));
}
@Override
public void deleteProjectsByName(List<String> projectNames) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteProjectsByName(projectNames);
}
}
@Override
public void checkinRole(Role role) {
checkinRoles(Lists.newArrayList(role));
}
@Override
public void checkinRoles(List<Role> roles) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.checkinRoles(roles);
}
}
@Override
public void deleteRole(Role role) {
deleteRoles(Lists.newArrayList(role));
}
@Override
public void deleteRoles(List<Role> roles) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteRoles(roles);
}
}
@Override
public void deleteRoleByName(String roleName) {
deleteRolesByName(Lists.newArrayList(roleName));
}
@Override
public void deleteRolesByName(List<String> roleNames) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteRolesByName(roleNames);
}
}
@Override
public void checkinAssignment(Assignment assignment) {
checkinAssignments(Lists.newArrayList(assignment));
}
@Override
public void checkinAssignments(List<Assignment> assignments) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.checkinAssignments(assignments);
}
}
@Override
public void deleteAssignment(Assignment assignment) {
deleteAssignments(Lists.newArrayList(assignment));
}
@Override
public void deleteAssignment(String userName, String project) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteAssignment(userName, project);
}
}
@Override
public void deleteAssignments(List<Assignment> assignments) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteAssignments(assignments);
}
}
@Override
public void deleteAllAssignmentsForProject(String projectName) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteAllAssignmentsForProject(projectName);
}
}
@Override
public void deleteAllAssignmentsForProject(Project project) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteAllAssignmentsForProject(project);
}
}
@Override
public void deleteAllAssignmentsForUser(String userName) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteAllAssignmentsForUser(userName);
}
}
@Override
public void deleteAllAssignmentsForUser(User user) {
for (DataSynchronizer synchronizer : dataSynchronizers) {
synchronizer.deleteAllAssignmentsForUser(user);
}
}
public void setDataSynchronizers(List<DataSynchronizer> dataSynchronizers) {
this.dataSynchronizers = dataSynchronizers;
}
@Override
public AliveState getAliveState() {
return dataSynchronizers == null ? AliveState.OFFLINE : AliveState.ONLINE;
}
}