Example usage for org.apache.thrift.protocol TType BYTE

List of usage examples for org.apache.thrift.protocol TType BYTE

Introduction

In this page you can find the example usage for org.apache.thrift.protocol TType BYTE.

Prototype

byte BYTE

To view the source code for org.apache.thrift.protocol TType BYTE.

Click Source Link

Usage

From source file:cereal.impl.ThriftStructMapping.java

License:Apache License

@Override
public List<Field> getFields(E obj) {
    checkNotNull(obj, "The struct was null");

    List<Field> fields;
    try {//w w  w  .jav  a  2s.com
        @SuppressWarnings("rawtypes")
        Class<? extends TBase> tbaseClz = obj.getClass();
        if (null == getFieldValue) {
            synchronized (this) {
                if (null == getFieldValue) {
                    Class<?> fieldsClz = Class.forName(obj.getClass().getName() + "$_Fields");
                    getFieldValue = tbaseClz.getMethod("getFieldValue", fieldsClz);
                    isSet = tbaseClz.getMethod("isSet", fieldsClz);
                }
            }
        }

        Map<? extends TFieldIdEnum, FieldMetaData> thriftFields = FieldMetaData.getStructMetaDataMap(tbaseClz);
        fields = new ArrayList<>();

        for (Entry<? extends TFieldIdEnum, FieldMetaData> entry : thriftFields.entrySet()) {
            TFieldIdEnum field = entry.getKey();
            FieldMetaData fMetaData = entry.getValue();
            if ((boolean) isSet.invoke(obj, field)) {
                Object value = getFieldValue.invoke(obj, field);
                FieldValueMetaData fvMetaData = fMetaData.valueMetaData;
                switch (fvMetaData.type) {
                case TType.BOOL:
                    Boolean booleanVal = (Boolean) value;
                    fields.add(new FieldImpl(text(fMetaData.fieldName), getGrouping(fMetaData),
                            getVisibility(fMetaData), value(booleanVal.toString())));
                    break;
                case TType.BYTE:
                    Byte byteVal = (Byte) value;
                    fields.add(new FieldImpl(text(fMetaData.fieldName), getGrouping(fMetaData),
                            getVisibility(fMetaData), value(byteVal.toString())));
                    break;
                case TType.DOUBLE:
                    Double dblVal = (Double) value;
                    fields.add(new FieldImpl(text(fMetaData.fieldName), getGrouping(fMetaData),
                            getVisibility(fMetaData), value(dblVal.toString())));
                    break;
                case TType.I16:
                    Short shortVal = (Short) value;
                    fields.add(new FieldImpl(text(fMetaData.fieldName), getGrouping(fMetaData),
                            getVisibility(fMetaData), value(shortVal.toString())));
                    break;
                case TType.I32:
                    Integer intVal = (Integer) value;
                    fields.add(new FieldImpl(text(fMetaData.fieldName), getGrouping(fMetaData),
                            getVisibility(fMetaData), value(intVal.toString())));
                    break;
                case TType.I64:
                    Long longVal = (Long) value;
                    fields.add(new FieldImpl(text(fMetaData.fieldName), getGrouping(fMetaData),
                            getVisibility(fMetaData), value(longVal.toString())));
                    break;
                case TType.STRING:
                    byte[] bytes;
                    if (fvMetaData.isBinary()) {
                        bytes = (byte[]) value;
                    } else {
                        String strVal = (String) value;
                        bytes = strVal.getBytes(UTF_8);
                    }
                    fields.add(new FieldImpl(text(fMetaData.fieldName), getGrouping(fMetaData),
                            getVisibility(fMetaData), new Value(bytes)));
                    break;
                default:
                    log.warn("Ignoring field: {}", field.getFieldName());
                    break;
                }
            }
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    }

    return fields;
}

From source file:cereal.impl.ThriftStructMapping.java

License:Apache License

@Override
public void update(Iterable<Entry<Key, Value>> iter, InstanceOrBuilder<E> instOrBuilder) {
    checkNotNull(iter, "Iterator is null");
    checkNotNull(instOrBuilder, "InstOrBuilder is null");
    checkArgument(Type.INSTANCE == instOrBuilder.getType(), "Expected INSTANCE in InstanceOrBuilder");

    try {//w ww. j  a va 2 s. c  o m
        @SuppressWarnings("rawtypes")
        Class<? extends TBase> tbaseClz = instOrBuilder.getWrappedClass();
        if (null == setFieldValue) {
            synchronized (this) {
                if (null == setFieldValue) {
                    Class<?> fieldsClz = Class.forName(instOrBuilder.getWrappedClass().getName() + "$_Fields");
                    setFieldValue = tbaseClz.getMethod("setFieldValue", fieldsClz, Object.class);
                }
            }
        }

        for (Entry<Key, Value> entry : iter) {
            String fieldName = entry.getKey().getColumnQualifier().toString();
            Map<? extends TFieldIdEnum, FieldMetaData> thriftFields = FieldMetaData
                    .getStructMetaDataMap(tbaseClz);
            for (Entry<? extends TFieldIdEnum, FieldMetaData> fieldEntry : thriftFields.entrySet()) {
                TFieldIdEnum fieldId = fieldEntry.getKey();
                if (fieldName.equals(fieldId.getFieldName())) {
                    FieldValueMetaData fvMetaData = fieldEntry.getValue().valueMetaData;
                    Value v = entry.getValue();
                    Object obj = instOrBuilder.get();
                    switch (fvMetaData.type) {
                    case TType.BOOL:
                        Boolean booleanVal = Boolean.parseBoolean(v.toString());
                        setFieldValue.invoke(obj, fieldId, booleanVal);
                        break;
                    case TType.BYTE:
                        Byte byteVal = Byte.parseByte(v.toString());
                        setFieldValue.invoke(obj, fieldId, byteVal);
                        break;
                    case TType.DOUBLE:
                        Double dblVal = Double.parseDouble(v.toString());
                        setFieldValue.invoke(obj, fieldId, dblVal);
                        break;
                    case TType.I16:
                        Short shortVal = Short.parseShort(v.toString());
                        setFieldValue.invoke(obj, fieldId, shortVal);
                        break;
                    case TType.I32:
                        Integer intVal = Integer.parseInt(v.toString());
                        setFieldValue.invoke(obj, fieldId, intVal);
                        break;
                    case TType.I64:
                        Long longVal = Long.parseLong(v.toString());
                        setFieldValue.invoke(obj, fieldId, longVal);
                        break;
                    case TType.STRING:
                        if (fvMetaData.isBinary()) {
                            setFieldValue.invoke(obj, fieldId, ByteBuffer.wrap(v.get()));
                        } else {
                            String strVal = v.toString();
                            setFieldValue.invoke(obj, fieldId, strVal);
                        }
                        break;
                    default:
                        log.warn("Ignoring field: {}", fieldName);
                        break;
                    }
                }
            }
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:com.ambiata.poacher.mr.TDeserializerCopy.java

License:Apache License

/**
 * Deserialize only a byte field (addressed by recursively using field id)
 * from a byte record.//from ww w . j ava2  s.c  o m
 * @param bytes The serialized object to read from
 * @param fieldIdPathFirst First of the FieldId's that define a path to a byte field
 * @param fieldIdPathRest The rest FieldId's that define a path to a byte field
 * @throws TException
 */
public Byte partialDeserializeByte(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest)
        throws TException {
    return (Byte) partialDeserializeField(TType.BYTE, bytes, fieldIdPathFirst, fieldIdPathRest);
}

From source file:com.ambiata.poacher.mr.TDeserializerCopy.java

License:Apache License

private Object partialDeserializeField(byte ttype, byte[] bytes, TFieldIdEnum fieldIdPathFirst,
        TFieldIdEnum... fieldIdPathRest) throws TException {
    try {/*  www  . ja  v a 2  s  . c  o  m*/
        TField field = locateField(bytes, fieldIdPathFirst, fieldIdPathRest);
        if (field != null) {
            // if this point is reached, iprot will be positioned at the start of the field.
            switch (ttype) {
            case TType.BOOL:
                if (field.type == TType.BOOL) {
                    return protocol_.readBool();
                }
                break;
            case TType.BYTE:
                if (field.type == TType.BYTE) {
                    return protocol_.readByte();
                }
                break;
            case TType.DOUBLE:
                if (field.type == TType.DOUBLE) {
                    return protocol_.readDouble();
                }
                break;
            case TType.I16:
                if (field.type == TType.I16) {
                    return protocol_.readI16();
                }
                break;
            case TType.I32:
                if (field.type == TType.I32) {
                    return protocol_.readI32();
                }
                break;
            case TType.I64:
                if (field.type == TType.I64) {
                    return protocol_.readI64();
                }
                break;
            case TType.STRING:
                if (field.type == TType.STRING) {
                    return protocol_.readString();
                }
                break;
            case 100: // hack to differentiate between string and binary
                if (field.type == TType.STRING) {
                    return protocol_.readBinary();
                }
                break;
            }
        }
        return null;
    } catch (Exception e) {
        throw new TException(e);
    } finally {
        trans_.clear();
        protocol_.reset();
    }
}

From source file:com.ebay.nest.io.sede.dynamic_type.DynamicSerDeTypeByte.java

License:Apache License

@Override
public byte getType() {
    return TType.BYTE;
}

From source file:com.facebook.swift.codec.internal.TProtocolReader.java

License:Apache License

public byte readByteField() throws TException {
    if (!checkReadState(TType.BYTE)) {
        return 0;
    }//from w w  w  .  jav a2s .co  m
    currentField = null;
    byte fieldValue = protocol.readByte();
    protocol.readFieldEnd();
    return fieldValue;
}

From source file:com.facebook.swift.codec.internal.TProtocolWriter.java

License:Apache License

public void writeByteField(String name, short id, byte b) throws TException {
    protocol.writeFieldBegin(new TField(name, TType.BYTE, id));
    protocol.writeByte(b);/*from   w ww  . j  a  v  a 2  s  .c  o  m*/
    protocol.writeFieldEnd();
}

From source file:com.linecorp.armeria.common.thrift.ThriftUtil.java

License:Apache License

/**
 * Converts the specified {@link FieldValueMetaData} into its corresponding Java type.
 *///from w  ww  .  j av  a2 s .co m
public static Class<?> toJavaType(FieldValueMetaData metadata) {
    switch (metadata.type) {
    case TType.BOOL:
        return Boolean.class;
    case TType.BYTE:
        return Byte.class;
    case TType.DOUBLE:
        return Double.class;
    case TType.ENUM:
        return Enum.class;
    case TType.I16:
        return Short.class;
    case TType.I32:
        return Integer.class;
    case TType.I64:
        return Long.class;
    case TType.LIST:
        return List.class;
    case TType.MAP:
        return Map.class;
    case TType.SET:
        return Set.class;
    case TType.STRING:
        return String.class;
    case TType.STRUCT:
        return ((StructMetaData) metadata).structClass;
    case TType.VOID:
        return Void.class;
    }

    // Should never reach here.
    throw new Error();
}

From source file:com.linecorp.armeria.server.docs.ValueType.java

License:Apache License

static ValueType of(byte type) {
    switch (type) {
    case TType.STOP:
        return ValueType.STOP;
    case TType.VOID:
        return ValueType.VOID;
    case TType.BOOL:
        return ValueType.BOOL;
    case TType.BYTE:
        return ValueType.BYTE;
    case TType.DOUBLE:
        return ValueType.DOUBLE;
    case TType.I16:
        return ValueType.I16;
    case TType.I32:
        return ValueType.I32;
    case TType.I64:
        return ValueType.I64;
    case TType.STRING:
        return ValueType.STRING;
    case TType.STRUCT:
        return ValueType.STRUCT;
    case TType.MAP:
        return ValueType.MAP;
    case TType.SET:
        return ValueType.SET;
    case TType.LIST:
        return ValueType.LIST;
    case TType.ENUM:
        return ValueType.ENUM;
    default:/*from   www .  j  a  v a 2  s .c  o  m*/
        throw new IllegalArgumentException("unknown field value type: " + type);
    }
}

From source file:com.linecorp.armeria.server.thrift.ThriftDocServicePlugin.java

License:Apache License

@VisibleForTesting
static TypeSignature toTypeSignature(FieldValueMetaData fieldValueMetaData) {
    if (fieldValueMetaData instanceof StructMetaData) {
        return TypeSignature.ofNamed(((StructMetaData) fieldValueMetaData).structClass);
    }/*  w  ww  . j a va2 s  .  c o  m*/

    if (fieldValueMetaData instanceof EnumMetaData) {
        return TypeSignature.ofNamed(((EnumMetaData) fieldValueMetaData).enumClass);
    }

    if (fieldValueMetaData instanceof ListMetaData) {
        return TypeSignature.ofList(toTypeSignature(((ListMetaData) fieldValueMetaData).elemMetaData));
    }

    if (fieldValueMetaData instanceof SetMetaData) {
        return TypeSignature.ofSet(toTypeSignature(((SetMetaData) fieldValueMetaData).elemMetaData));
    }

    if (fieldValueMetaData instanceof MapMetaData) {
        return TypeSignature.ofMap(toTypeSignature(((MapMetaData) fieldValueMetaData).keyMetaData),
                toTypeSignature(((MapMetaData) fieldValueMetaData).valueMetaData));
    }

    if (fieldValueMetaData.isBinary()) {
        return BINARY;
    }

    switch (fieldValueMetaData.type) {
    case TType.VOID:
        return VOID;
    case TType.BOOL:
        return BOOL;
    case TType.BYTE:
        return I8;
    case TType.DOUBLE:
        return DOUBLE;
    case TType.I16:
        return I16;
    case TType.I32:
        return I32;
    case TType.I64:
        return I64;
    case TType.STRING:
        return STRING;
    }

    final String unresolvedName;
    if (fieldValueMetaData.isTypedef()) {
        unresolvedName = fieldValueMetaData.getTypedefName();
    } else {
        unresolvedName = null;
    }

    return TypeSignature.ofUnresolved(firstNonNull(unresolvedName, "unknown"));
}