类 FieldMapper

java.lang.Object
com.midi.his.sdk.mapper.FieldMapper

public final class FieldMapper extends Object
报文字段(UPPER_SNAKE)与 DTO 属性(lowerCamel)之间的双向映射。

规则刻意保持简单可逆:EXAM_MCLASS_CODE <-> examMclassCode。命名不符合该规则时, 用 HisField 在属性上标注真实字段名。

每个类的映射表在首次使用时构建并缓存,之后只读,因此本类是线程安全的。 SDK 的 DTO 一律用 String 承载报文中,映射过程不做任何类型转换。

  • 方法详细资料

    • toObject

      public static <T> T toObject(Map<String,String> fields, Class<T> type)
      把一行报文数据装进 DTO。
      类型参数:
      T - 目标类型
      参数:
      fields - 报文字段表,键为大写下划线字段名
      type - 目标类型,必须有不带参数的构造器
      返回:
      填充后的对象;fields 为 null 或空时返回 null
      抛出:
      HisProtocolException - 目标类不可实例化,或字段类型不是 String
    • toFields

      public static Map<String,String> toFields(Object dto)
      把 DTO 转成按声明顺序排列的报文字段表,值为 null 的属性不输出。
      参数:
      dto - 数据传输对象
      返回:
      有序字段表
      抛出:
      HisProtocolException - 反射失败
    • fieldNames

      public static List<String> fieldNames(Class<?> type)
      报文字段名形式的属性清单,用于校验必填项。
      参数:
      type - DTO 类型
      返回:
      字段名列表,按声明顺序
    • toCamel

      public static String toCamel(String name)
      UPPER_SNAKE 转 lowerCamel。
      参数:
      name - 报文字段名
      返回:
      属性名
    • toUpperSnake

      public static String toUpperSnake(String name)
      lowerCamel 转 UPPER_SNAKE,是 toCamel(java.lang.String) 的逆运算。
      参数:
      name - 属性名
      返回:
      报文字段名