private Object getValue(FieldSet fs, String name) {
		if (!CollectionUtils.isEmpty(types)) {
			FieldSetType type = types.get(name);

			if (type == null) {
				return fs.readString(name);
			}
			else if (type == FieldSetType.BIG_DECIMAL) {
				return fs.readBigDecimal(name);
			}
			else if (type == FieldSetType.BOOLEAN) {
				return fs.readBoolean(name);
			}
			else if (type == FieldSetType.BYTE) {
				return fs.readByte(name);
			}
			else if (type == FieldSetType.CHAR) {
				return fs.readChar(name);
			}
			else if (type == FieldSetType.DATE) {
				return fs.readDate(name);
			}
			else if (type == FieldSetType.DOUBLE) {
				return fs.readDouble(name);
			}
			else if (type == FieldSetType.FLOAT) {
				return fs.readFloat(name);
			}
			else if (type == FieldSetType.INT) {
				return fs.readInt(name);
			}
			else if (type == FieldSetType.LONG) {
				return fs.readLong(name);
			}
			else if (type == FieldSetType.SHORT) {
				return fs.readShort(name);
			}
			else if (type == FieldSetType.STRING) {
				return fs.readString(name);
			}
			else {
				throw new UnsupportedOperationException("Unable to determine the type to retrieve for " + name);
			}
		}
		else {
			return fs.readString(name);
		}
	}
A {@link FieldSetMapper} implementation intended to allow a user use a {@link Tuple} as the item. By default, all
fields of the {@link FieldSet} will be mapped as Strings. To use type specific mapping, provide a map of field names
to {@link FieldSetType}. You are not required to map all fields if using type specific mappings (only the ones that
matter).

@author Michael Minella
spring-xd-tuple/src/main/java/org/springframework/xd/tuple/batch/TupleFieldSetMapper.java