bt.data.range.Ranges Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bt-core Show documentation
Show all versions of bt-core Show documentation
BitTorrent Client Library (Core)
package bt.data.range;
import bt.data.BlockSet;
import bt.data.DataRange;
import java.util.function.Function;
/**
* @since 1.3
*/
public class Ranges {
/**
* @since 1.3
*/
public static > BlockRange blockRange(T range, long blockSize) {
return new BlockRange<>(range, blockSize);
}
/**
* @since 1.3
*/
public static > Range synchronizedRange(T range) {
return new SynchronizedRange<>(range);
}
/**
* @since 1.3
*/
public static DataRange synchronizedDataRange(DataRange range) {
SynchronizedRange synchronizedRange = new SynchronizedRange<>(range);
return new SynchronizedDataRange<>(synchronizedRange, Function.identity());
}
/**
* @since 1.3
*/
public static DataRange dataRange(BlockRange range) {
return DelegatingDataRange.range(range, DelegatingRange::getDelegate);
}
/**
* @since 1.3
*/
public static DataRange synchronizedDataRange(BlockRange range) {
SynchronizedRange> synchronizedRange = new SynchronizedRange<>(range);
return new SynchronizedDataRange<>(synchronizedRange, BlockRange::getDelegate);
}
/**
* @since 1.3
*/
public static BlockSet synchronizedBlockSet(BlockSet blockSet) {
return new SynchronizedBlockSet(blockSet);
}
}