public long getLong() {
		long i = 0L;
		byte b = this.value[this.index++];
		switch (b) {
		case XsonConst.LONG1:
			i = ByteUtils.byteToLong(this.value, this.index, 1);
			this.incrementIndex(1);
			break;
		case XsonConst.LONG2:
			i = ByteUtils.byteToLong(this.value, this.index, 2);
			this.incrementIndex(2);
			break;
		case XsonConst.LONG3:
			i = ByteUtils.byteToLong(this.value, this.index, 3);
			this.incrementIndex(3);
			break;
		case XsonConst.LONG4:
			i = ByteUtils.byteToLong(this.value, this.index, 4);
			this.incrementIndex(4);
			break;
		case XsonConst.LONG5:
			i = ByteUtils.byteToLong(this.value, this.index, 5);
			this.incrementIndex(5);
			break;
		case XsonConst.LONG6:
			i = ByteUtils.byteToLong(this.value, this.index, 6);
			this.incrementIndex(6);
			break;
		case XsonConst.LONG7:
			i = ByteUtils.byteToLong(this.value, this.index, 7);
			this.incrementIndex(7);
			break;
		case XsonConst.LONG:
			i = ByteUtils.byteToLong(this.value, this.index, 8);
			this.incrementIndex(8);
			break;
		default:
			throw new XsonDeserializerException("Illegal long mark '"
					+ Integer.toHexString(b & 0xFF) + "' at index "
					+ this.index);
		}
		return i;
	}