@SuppressWarnings("unchecked")
  protected HBaseFieldValueGenerator(final Class<?> clazz, List<HBaseFieldInfo> fieldInfos) {
    for (HBaseFieldInfo fieldInfo : fieldInfos) {
      fieldInfoMap.put(fieldInfo.getFamilyName() + COLON + fieldInfo.getColumnName(), fieldInfo);

      PojoUtils.Getter<Object, Object> getter =
          PojoUtils.createGetter(
              clazz, fieldInfo.getPojoFieldExpression(), fieldInfo.getType().getJavaType());
      fieldGetterMap.put(fieldInfo, getter);
    }

    for (HBaseFieldInfo fieldInfo : fieldInfos) {
      PojoUtils.Setter<Object, Object> setter =
          PojoUtils.createSetter(
              clazz, fieldInfo.getPojoFieldExpression(), fieldInfo.getType().getJavaType());
      fieldSetterMap.put(fieldInfo, setter);
    }
  }
 @Override
 public Object convertValue(HBaseFieldInfo fieldInfo, Object value) {
   return fieldInfo.toValue((byte[]) value);
 }