Files
SCM-Manager/scm-test/src/main/java/sonia/scm/TempDirRepositoryLocationResolver.java
René Pfeuffer c35363b79f Store repository id in git config for each repository
This is needed after migration from v1 to v2 and is done in
GitV1UpdateStep.java. Therefore we hat to make the 'forAllPaths' method
in PathBasedRepositoryLocationResolver available in the interface of
RepositoryLocationResolver.
2019-07-03 07:48:06 +02:00

42 lines
1.1 KiB
Java

package sonia.scm;
import sonia.scm.repository.BasicRepositoryLocationResolver;
import java.io.File;
import java.nio.file.Path;
import java.util.function.BiConsumer;
public class TempDirRepositoryLocationResolver extends BasicRepositoryLocationResolver {
private final File tempDirectory;
public TempDirRepositoryLocationResolver(File tempDirectory) {
super(Path.class);
this.tempDirectory = tempDirectory;
}
@Override
protected <T> RepositoryLocationResolverInstance<T> create(Class<T> type) {
return new RepositoryLocationResolverInstance<T>() {
@Override
public T getLocation(String repositoryId) {
return (T) tempDirectory.toPath();
}
@Override
public T createLocation(String repositoryId) {
return (T) tempDirectory.toPath();
}
@Override
public void setLocation(String repositoryId, T location) {
throw new UnsupportedOperationException("not implemented for tests");
}
@Override
public void forAllLocations(BiConsumer<String, T> consumer) {
consumer.accept("id", (T) tempDirectory.toPath());
}
};
}
}