private final RowData calculateRowData(String s) {
		int i = -1;
		int indicePos = 0;
		int[] indicePositions = new int[s.length()];
		int totalWidth = 0;
		int maxHeight = 0;
		for (char c : s.toCharArray()) {
			i++;
			indicePos = availableChar.indexOf(c);
			// if it wasn't found within the char array
			if (indicePos == -1) {
				// There won't be a graphical representation for a space
				// So if it isn't a space, flag it up as an error
				if (c != ' ') {
					logger.error("invalid char :: '", c, "' within string ", s);
				}
				// If space or key not found, just leave a space for it
				// increment total width, and continue
				indicePositions[i] = -1;
				totalWidth += letterSpacing;
				continue;
			}
			indicePositions[i] = indicePos;
			totalWidth += splitCharGraphicList[indicePos].getWidth() + kerning;

			if (splitCharGraphicList[indicePos].getHeight() > maxHeight) {
				maxHeight = (int) splitCharGraphicList[indicePos].getHeight();
			}
		}
		return new RowData(totalWidth, maxHeight, indicePositions);
	}