/**
* 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.connector.userprojects.file.internal;
import java.util.Map;
import org.openengsb.core.api.Connector;
import org.openengsb.core.common.AbstractConnectorInstanceFactory;
public class UserProjectsFileServiceInstanceFactory extends
AbstractConnectorInstanceFactory<UserProjectsFileServiceImpl> {
private SynchronizationService synchronizationService;
public void setSynchronizationService(SynchronizationService service) {
synchronizationService = service;
}
public UserProjectsFileServiceInstanceFactory() {
}
@Override
public Connector createNewInstance(String id) {
return new UserProjectsFileServiceImpl();
}
@Override
public UserProjectsFileServiceImpl doApplyAttributes(UserProjectsFileServiceImpl instance,
Map<String, String> attributes) {
Configuration config = Configuration.get();
if (attributes.containsKey("baseDir")) {
config.setBaseDir(attributes.get("baseDir"));
}
if (attributes.containsKey("usersFileName")) {
config.setUsersFile(attributes.get("usersFileName"));
}
if (attributes.containsKey("projectsFileName")) {
config.setProjectsFile(attributes.get("projectsFileName"));
}
if (attributes.containsKey("rolesFileName")) {
config.setRolesFile(attributes.get("rolesFileName"));
}
if (attributes.containsKey("assignmentsFileName")) {
config.setAssignmentsFile(attributes.get("assignmentsFileName"));
}
if (attributes.containsKey("associationSeparator")) {
config.setAssociationSeparator(attributes.get("associationSeparator"));
}
if (attributes.containsKey("valueSeparator")) {
config.setValueSeparator(attributes.get("valueSeparator"));
}
synchronizationService.syncFromFilesToOpenEngSB();
return instance;
}
}