package org.juxtasoftware.resource.sidebyside; import java.util.List; public interface OverlapInjector<T> { /** * Initialize the injector. */ void initialize(List<T> data); /** * Get the data source that this injector uses * @return */ List<T> getData(); boolean hasContent( final long pos); /** * If applicable, inject the start of new content and tagging * into the current line of heatmap text. * * @param line The current version of a single line of heatmap text * @param currPositon The current character offset in the base witness * @return True if start content was injected */ boolean injectContentStart( StringBuilder line, final long currPositon ); void restartContent( StringBuilder line ); /** * If applicable, inject the tagging necessary to end any outstanding * new content that was initiated by <code>injectContentStart</code> * * @param line * @param currPosition * @return True end was enjected */ boolean injectContentEnd( StringBuilder line, final long currPosition); }