/* * ==================================================================== * Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://svnkit.com/license.html * If newer versions of this license are posted there, you may use a * newer version instead, at your option. * ==================================================================== */ package org.tmatesoft.svn.core.internal.wc; import java.io.File; import java.util.Map; import org.tmatesoft.svn.core.SVNURL; import org.tmatesoft.svn.core.wc.SVNWCUtil; /** * @author TMate Software Ltd. * @version 1.3 */ public class DefaultSVNHostOptionsProvider implements ISVNHostOptionsProvider { private final File myConfigDirectory; private SVNCompositeConfigFile myServersFile; private Map myServersOptions; public DefaultSVNHostOptionsProvider() { this(null); } public DefaultSVNHostOptionsProvider(File configDirectory) { myConfigDirectory = configDirectory == null ? SVNWCUtil.getDefaultConfigurationDirectory() : configDirectory; } public void setInMemoryServersOptions(Map serversOptions) { myServersOptions = serversOptions; } protected SVNCompositeConfigFile getServersFile() { if (myServersFile == null) { SVNConfigFile.createDefaultConfiguration(myConfigDirectory); SVNConfigFile userConfig = new SVNConfigFile(new File(myConfigDirectory, "servers")); SVNConfigFile systemConfig = new SVNConfigFile(new File(SVNFileUtil.getSystemConfigurationDirectory(), "servers")); myServersFile = new SVNCompositeConfigFile(systemConfig, userConfig); myServersFile.setGroupsToOptions(myServersOptions); } return myServersFile; } public ISVNHostOptions getHostOptions(SVNURL url) { return new DefaultSVNHostOptions(getServersFile(), url); } }