Java 类org.apache.thrift.TEnum 实例源码

项目:armeria    文件:TTextProtocol.java   
@Override
public int readI32() throws TException {
    Class<?> fieldClass = getCurrentFieldClassIfIs(TEnum.class);
    if (fieldClass != null) {
        // Enum fields may be set by string, even though they represent integers.
        getCurrentContext().read();
        JsonNode elem = getCurrentContext().getCurrentChild();
        if (elem.isInt()) {
            return TypedParser.INTEGER.readFromJsonElement(elem);
        } else if (elem.isTextual()) {
            // All TEnum are enums
            @SuppressWarnings({ "unchecked", "rawtypes" })
            TEnum tEnum = (TEnum) Enum.valueOf((Class<Enum>) fieldClass,
                                               TypedParser.STRING.readFromJsonElement(elem));
            return tEnum.getValue();
        } else {
            throw new TTransportException("invalid value type for enum field: " + elem.getNodeType() +
                                          " (" + elem + ')');
        }
    } else {
        return readNameOrValue(TypedParser.INTEGER);
    }
}
项目:internet_of_things_simulator    文件:EnumMetaData.java   
public EnumMetaData(byte type, Class<? extends TEnum> sClass){
  super(type);
  this.enumClass = sClass;
}
项目:parquet-mr    文件:ThriftSchemaConverter.java   
private static ThriftField toThriftField(String name, Field field, ThriftField.Requirement requirement) {
  ThriftType type;
  switch (ThriftTypeID.fromByte(field.getType())) {
    case STOP:
    case VOID:
    default:
      throw new UnsupportedOperationException("can't convert type of " + field);
    case BOOL:
      type = new BoolType();
      break;
    case BYTE:
      type = new ByteType();
      break;
    case DOUBLE:
      type = new DoubleType();
      break;
    case I16:
      type = new I16Type();
      break;
    case I32:
      type = new I32Type();
      break;
    case I64:
      type = new I64Type();
      break;
    case STRING:
      StringType stringType = new StringType();
      FieldMetaData fieldMetaData = field.getFieldMetaData();
      // There is no real binary type (see THRIFT-1920) in Thrift,
      // binary data is represented by String type with an additional binary flag.
      if (fieldMetaData != null && fieldMetaData.valueMetaData.isBinary()) {
        stringType.setBinary(true);
      }
      type = stringType;
      break;
    case STRUCT:
      type = toStructType(field.gettStructDescriptor());
      break;
    case MAP:
      final Field mapKeyField = field.getMapKeyField();
      final Field mapValueField = field.getMapValueField();
      type = new ThriftType.MapType(
          toThriftField(mapKeyField.getName(), mapKeyField, requirement),
          toThriftField(mapValueField.getName(), mapValueField, requirement));
      break;
    case SET:
      final Field setElemField = field.getSetElemField();
      type = new ThriftType.SetType(toThriftField(setElemField.getName(), setElemField, requirement));
      break;
    case LIST:
      final Field listElemField = field.getListElemField();
      type = new ThriftType.ListType(toThriftField(listElemField.getName(), listElemField, requirement));
      break;
    case ENUM:
      Collection<TEnum> enumValues = field.getEnumValues();
      List<EnumValue> values = new ArrayList<ThriftType.EnumValue>();
      for (TEnum tEnum : enumValues) {
        values.add(new EnumValue(tEnum.getValue(), tEnum.toString()));
      }
      type = new EnumType(values);
      break;
  }
  return new ThriftField(name, field.getId(), requirement, type);
}
项目:CadalWorkspace    文件:EnumMetaData.java   
public EnumMetaData(byte type, Class<? extends TEnum> sClass){
  super(type);
  this.enumClass = sClass;
}
项目:CadalWorkspace    文件:EnumMetaData.java   
public EnumMetaData(byte type, Class<? extends TEnum> sClass){
  super(type);
  this.enumClass = sClass;
}