All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.unlaxer.SortedRanges Maven / Gradle / Ivy

package org.unlaxer;

import java.util.NavigableSet;
import java.util.TreeSet;
import java.util.function.Predicate;
import java.util.stream.Stream;

public class SortedRanges{
	
	NavigableSet ranges;
	
	public SortedRanges() {
		super();
		this.ranges = new TreeSet();
	}
	
	public NavigableSet navigableSet(){
		return ranges;
	}
	
	public Stream stream(){
		return ranges.stream();
	}

	
	public boolean add(Range range) {
		return ranges.add(range);
	}
	
	public NavigableSet matches(Predicate rangePredicate){
		
		NavigableSet matches = new TreeSet();
		stream()
			.filter(rangePredicate)
			.forEach(matches::add);
		return matches;
	}
	
	public NavigableSet matches(int index){
		
		return matches(range->range.match(index));
	}
	
	public NavigableSet smallers(int index){
		
		return matches(range->range.smallerThan(index));
	}
	
	
	public NavigableSet biggers(int index){
		
		return matches(range->range.biggerThan(index));
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy