// Path: src/main/java/hexcapture/HexSelectionsContentSnapshot.java
// public class HexSelectionsContentSnapshot {
// 
// 	private static final String STRING_REPRESENTATION_SEPARATOR = "|";
// 
// 	protected HexSelections selections;
// 	protected Map<HexSelection, String> selectionValues;
// 
// 	protected HexSelectionsContentSnapshot() {}
// 
// 	/**
// 	 * Getter on the value of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public String getValueAt(int index) {
// 		return selectionValues.get(selections.get(index));
// 	}
// 
// 	/**
// 	 * Getter on the id of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public int getSelectionIdAt(int index) {
// 		return selections.get(index).getId();
// 	}
// 
// 	/**
// 	 * Getter on the start index of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public long getSelectionStartAt(int index) {
// 		return selections.get(index).getStart();
// 	}
// 
// 	/**
// 	 * Getter on the end index of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public long getSelectionEndAt(int index) {
// 		return selections.get(index).getEnd();
// 	}
// 
// 	/**
// 	 * Getter on the index of the active selection
// 	 * @return
// 	 */
// 	public int getActiveSelectionIndex() {
// 		return selections.getActiveSelectionIndex();
// 	}
// 
// 	/**
// 	 * Getter on the size of the selection collection
// 	 * @return
// 	 */
// 	public int getSize() {
// 		return selections.getAll().size();
// 	}
// 
// 	@Override
// 	public String toString() {
// 		StringBuilder res = new StringBuilder();
// 		for (HexSelection s : selections.getAll()) {
// 			res.append(selectionValues.get(s));
// 			if (s != selections.getAll().get(getSize() - 1)) {
// 				res.append(STRING_REPRESENTATION_SEPARATOR);
// 			}
// 		}
// 		return res.toString();
// 	}
// 
// }
// 
// Path: src/main/java/hextostring/format/DecorableList.java
// public interface DecorableList {
// 
// 	public void setDecorationBefore(String decoration);
// 
// 	public void setDecorationBetween(String decoration);
// 
// 	public void setDecorationAfter(String decoration);
// 
// 	public void setLinesDecorations(String before, String after);
// 
// }


import java.util.List;
import hexcapture.HexSelectionsContentSnapshot;
import hextostring.format.DecorableList;
package hextostring.debug;



/**
 * Wraps the content of hex selections into an object containing the necessary
 * information for debugging
 *
 * @author Maxime PIA
 */
public class DebuggableHexSelectionsContent implements DebuggableStrings,
	DecorableList {

// Path: src/main/java/hexcapture/HexSelectionsContentSnapshot.java
// public class HexSelectionsContentSnapshot {
// 
// 	private static final String STRING_REPRESENTATION_SEPARATOR = "|";
// 
// 	protected HexSelections selections;
// 	protected Map<HexSelection, String> selectionValues;
// 
// 	protected HexSelectionsContentSnapshot() {}
// 
// 	/**
// 	 * Getter on the value of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public String getValueAt(int index) {
// 		return selectionValues.get(selections.get(index));
// 	}
// 
// 	/**
// 	 * Getter on the id of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public int getSelectionIdAt(int index) {
// 		return selections.get(index).getId();
// 	}
// 
// 	/**
// 	 * Getter on the start index of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public long getSelectionStartAt(int index) {
// 		return selections.get(index).getStart();
// 	}
// 
// 	/**
// 	 * Getter on the end index of a selection by its index
// 	 * @param index
// 	 * @return
// 	 */
// 	public long getSelectionEndAt(int index) {
// 		return selections.get(index).getEnd();
// 	}
// 
// 	/**
// 	 * Getter on the index of the active selection
// 	 * @return
// 	 */
// 	public int getActiveSelectionIndex() {
// 		return selections.getActiveSelectionIndex();
// 	}
// 
// 	/**
// 	 * Getter on the size of the selection collection
// 	 * @return
// 	 */
// 	public int getSize() {
// 		return selections.getAll().size();
// 	}
// 
// 	@Override
// 	public String toString() {
// 		StringBuilder res = new StringBuilder();
// 		for (HexSelection s : selections.getAll()) {
// 			res.append(selectionValues.get(s));
// 			if (s != selections.getAll().get(getSize() - 1)) {
// 				res.append(STRING_REPRESENTATION_SEPARATOR);
// 			}
// 		}
// 		return res.toString();
// 	}
// 
// }
// 
// Path: src/main/java/hextostring/format/DecorableList.java
// public interface DecorableList {
// 
// 	public void setDecorationBefore(String decoration);
// 
// 	public void setDecorationBetween(String decoration);
// 
// 	public void setDecorationAfter(String decoration);
// 
// 	public void setLinesDecorations(String before, String after);
// 
// }


// Path: src/main/java/hextostring/debug/DebuggableHexSelectionsContent.java
import java.util.List;
import hexcapture.HexSelectionsContentSnapshot;
import hextostring.format.DecorableList;

package hextostring.debug;



/**
 * Wraps the content of hex selections into an object containing the necessary
 * information for debugging
 *
 * @author Maxime PIA
 */
public class DebuggableHexSelectionsContent implements DebuggableStrings,
	DecorableList {

	private HexSelectionsContentSnapshot snapshot;