private Method getWriteMethod(ThriftType thriftType) { if (ReflectionHelper.isArray(thriftType.getJavaType())) { return ARRAY_WRITE_METHODS.get(thriftType.getJavaType()); } return WRITE_METHODS.get(thriftType.getProtocolType()); }
private Method getReadMethod(ThriftType thriftType) { if (ReflectionHelper.isArray(thriftType.getJavaType())) { return ARRAY_READ_METHODS.get(thriftType.getJavaType()); } return READ_METHODS.get(thriftType.getProtocolType()); }
private boolean needsCodec(ThriftFieldMetadata fieldMetadata) { if (ReflectionHelper.isArray(fieldMetadata.getThriftType().getJavaType())) { return false; } ThriftProtocolType protocolType = fieldMetadata.getThriftType().getProtocolType(); return protocolType == ENUM || protocolType == STRUCT || protocolType == SET || protocolType == LIST || protocolType == MAP; }
public static ParameterizedType toParameterizedType(ThriftTypeReference typeRef) { if (ReflectionHelper.isArray(typeRef.getJavaType())) { return type((Class<?>) typeRef.getJavaType()); } switch (typeRef.getProtocolType()) { case BOOL: case BYTE: case DOUBLE: case I16: case I32: case I64: case STRING: case BINARY: case STRUCT: case ENUM: return type((Class<?>) typeRef.getJavaType()); case MAP: return type(Map.class, toParameterizedType(typeRef.get().getKeyTypeReference()), toParameterizedType(typeRef.get().getValueTypeReference())); case SET: return type(Set.class, toParameterizedType(typeRef.get().getValueTypeReference())); case LIST: return type(List.class, toParameterizedType(typeRef.get().getValueTypeReference())); default: throw new IllegalArgumentException("Unsupported thrift field type " + typeRef.getJavaType()); } }