@Override
	public String getDataRepresentation(ByteBlock block, BigInteger index)
			throws ByteBlockAccessException {

		StringBuffer sb = new StringBuffer();
		//System.out.println("representation: = " + block.getLocationRepresentation(index)+ ", index = " + index);
		if (prefixEnabled) {
			sb.append("0x");
		}

		StringBuffer strBuff = new StringBuffer();
		BigInteger byteIndex = index;
		boolean qflag = false;
		for (int idx = 0; idx < unitByteSize; idx++) {
			try {
				byte b = block.getByte(byteIndex);
				strBuff.append(adjust(Integer.toHexString(b)));
				byteIndex = byteIndex.add(BigInteger.ONE);
			}
			catch (ByteBlockAccessException bbae) {
				if (idx == 0 || qflag) {
					strBuff.append("??");
					qflag = true;
				}
			}
		}

		String str = strBuff.toString();

		if (alphaCapsEnabled) {
			str = str.toUpperCase();
		}
		sb.append(str);
		return new String(sb);
	}
Gets the string representation at the given index in the block.
@param block block to change
@param index byte index into the block
@throws ByteBlockAccessException if the block cannot be read
@throws IndexOutOfBoundsException if index is not valid for the
block
Ghidra/Features/ByteViewer/src/main/java/ghidra/app/plugin/core/format/HexFormatModel.java