/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { NAME((short)1, "name"), MAX_VERSIONS((short)2, "maxVersions"), COMPRESSION((short)3, "compression"), IN_MEMORY((short)4, "inMemory"), BLOOM_FILTER_TYPE((short)5, "bloomFilterType"), BLOOM_FILTER_VECTOR_SIZE((short)6, "bloomFilterVectorSize"), BLOOM_FILTER_NB_HASHES((short)7, "bloomFilterNbHashes"), BLOCK_CACHE_ENABLED((short)8, "blockCacheEnabled"), TIME_TO_LIVE((short)9, "timeToLive"); private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>(); static { for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) { byName.put(field.getFieldName(), field); } } /** * Find the _Fields constant that matches fieldId, or null if its not found. */ @org.apache.thrift.annotation.Nullable public static _Fields findByThriftId(int fieldId) { switch(fieldId) { case 1: // NAME return NAME; case 2: // MAX_VERSIONS return MAX_VERSIONS;
if (metaData.valueMetaData.isContainer()) { if (metaData.valueMetaData instanceof SetMetaData) { elementMetaData = ((SetMetaData) metaData.valueMetaData).elemMetaData;
@VisibleForTesting static FieldInfo newFieldInfo(Class<?> parentType, FieldMetaData fieldMetaData) { requireNonNull(fieldMetaData, "fieldMetaData"); final FieldValueMetaData fieldValueMetaData = fieldMetaData.valueMetaData; final TypeSignature typeSignature; if (fieldValueMetaData.isStruct() && fieldValueMetaData.isTypedef() && parentType.getSimpleName().equals(fieldValueMetaData.getTypedefName())) { // Handle the special case where a struct field refers to itself, // where the Thrift compiler handles it as a typedef. typeSignature = TypeSignature.ofNamed(parentType); } else { typeSignature = toTypeSignature(fieldValueMetaData); } return new FieldInfo(fieldMetaData.fieldName, convertRequirement(fieldMetaData.requirementType), typeSignature); }
if (fieldValueMetaData.isBinary()) { return BINARY; if (fieldValueMetaData.isTypedef()) { unresolvedName = fieldValueMetaData.getTypedefName(); } else { unresolvedName = null;
if (!meta.keyMetaData.isStruct() && !meta.keyMetaData.isContainer()) { Map<Object, Object> childMap = (Map<Object, Object>)value; Map<Object, Object> childEntityMap = Maps.newHashMap(); entity.setFieldValue(f.getKey(), childEntityMap); if (!meta.keyMetaData.isStruct() && !meta.keyMetaData.isContainer()) { for (Entry<Object, Object> entry : childMap.entrySet()) { Object childKey = valueForBasicType(entry.getKey(), meta.keyMetaData.type); LOG.error(String.format("Unable to serializer field '%s' key type '%s' not supported", f.getKey().getFieldName(), meta.keyMetaData.getTypedefName()));
private boolean typesMatch(FieldDescriptor protoFieldDesc, FieldValueMetaData thriftMetadata) { if (thriftMetadata.isStruct()) { // TODO: Handle structs return false; } byte thriftType = thriftMetadata.type; // TODO: Handle Lists that are more than 1 level deep. Be all pro-style with the recursion. if (thriftMetadata.type == TType.LIST && protoFieldDesc.isRepeated()) { FieldValueMetaData listMeta = ((ListMetaData) thriftMetadata).elemMetaData; if (listMeta.isStruct() || listMeta.isContainer()) { return false; } thriftType = listMeta.type; } return (protoFieldDesc.getType().equals(thriftTypeToProtoType(thriftType)) || thriftBinSucks(protoFieldDesc.getType(), thriftType)); }
return nullable(set); case TType.STRING: if (f.isBinary()) return nullable(Schema.create(Schema.Type.BYTES)); Schema string = Schema.create(Schema.Type.STRING);
String newPrefix = prefix + f.getKey().getFieldName() + "."; org.apache.thrift.meta_data.MapMetaData meta = (org.apache.thrift.meta_data.MapMetaData)f.getValue().valueMetaData; if (!meta.keyMetaData.isStruct() && !meta.keyMetaData.isContainer()) { Map<Object, Object> map = (Map<Object, Object>)value; for (Entry<Object, Object> entry : map.entrySet()) { LOG.error(String.format("Unable to serializer field '%s' key type '%s' not supported", f.getKey().getFieldName(), meta.keyMetaData.getTypedefName())); LOG.error("Don't know how to convert to properties " + listMeta.elemMetaData.getTypedefName()); continue; if (listMeta.elemMetaData.isStruct()) { setPropertiesFromThrift(newPrefix + id + ".", properties, (org.apache.thrift.TBase)entry);
if (fieldValueMetaData.isBinary()) { return BINARY; if (fieldValueMetaData.isTypedef()) { unresolvedName = fieldValueMetaData.getTypedefName(); } else { unresolvedName = null;
if (fieldMetaData != null && fieldMetaData.valueMetaData.isBinary()) { stringType.setBinary(true);
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { ID((short)1, "id"), TABLE_NAME((short)2, "tableName"), DB_NAME((short)3, "dbName"), OWNER((short)4, "owner"), CREATE_TIME((short)5, "createTime"), LAST_ACCESS_TIME((short)6, "lastAccessTime"), RETENTION((short)7, "retention"), SD((short)8, "sd"), PARTITION_KEYS((short)9, "partitionKeys"), PARAMETERS((short)10, "parameters"), VIEW_ORIGINAL_TEXT((short)11, "viewOriginalText"), VIEW_EXPANDED_TEXT((short)12, "viewExpandedText"), TABLE_TYPE((short)13, "tableType"), PRIVILEGES((short)14, "privileges"), TEMPORARY((short)15, "temporary"), REWRITE_ENABLED((short)16, "rewriteEnabled"), CREATION_METADATA((short)17, "creationMetadata"), CAT_NAME((short)18, "catName"), /** * * @see PrincipalType */ OWNER_TYPE((short)19, "ownerType"), WRITE_ID((short)20, "writeId"), IS_STATS_COMPLIANT((short)21, "isStatsCompliant"), COL_STATS((short)22, "colStats"); private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
if (!meta.keyMetaData.isStruct() && !meta.keyMetaData.isContainer()) { Map<Object, Object> childMap = (Map<Object, Object>)value; Map<Object, Object> childEntityMap = Maps.newHashMap(); entity.setFieldValue(f.getKey(), childEntityMap); if (!meta.keyMetaData.isStruct() && !meta.keyMetaData.isContainer()) { for (Entry<Object, Object> entry : childMap.entrySet()) { Object childKey = valueForBasicType(entry.getKey(), meta.keyMetaData.type); LOG.error(String.format("Unable to serializer field '%s' key type '%s' not supported", f.getKey().getFieldName(), meta.keyMetaData.getTypedefName()));
@VisibleForTesting static FieldInfo newFieldInfo(Class<?> parentType, FieldMetaData fieldMetaData) { requireNonNull(fieldMetaData, "fieldMetaData"); final FieldValueMetaData fieldValueMetaData = fieldMetaData.valueMetaData; final TypeSignature typeSignature; if (fieldValueMetaData.isStruct() && fieldValueMetaData.isTypedef() && parentType.getSimpleName().equals(fieldValueMetaData.getTypedefName())) { // Handle the special case where a struct field refers to itself, // where the Thrift compiler handles it as a typedef. typeSignature = TypeSignature.ofNamed(parentType); } else { typeSignature = toTypeSignature(fieldValueMetaData); } return new FieldInfo(fieldMetaData.fieldName, convertRequirement(fieldMetaData.requirementType), typeSignature); }
if (fieldValueMetaData.isBinary()) { return BINARY; if (fieldValueMetaData.isTypedef()) { unresolvedName = fieldValueMetaData.getTypedefName(); } else { unresolvedName = null;
if (metaData.valueMetaData.isContainer()) { if (metaData.valueMetaData instanceof SetMetaData) { elementMetaData = ((SetMetaData) metaData.valueMetaData).elemMetaData;
@Test public void testNewExceptionInfo() { final ExceptionInfo exception = newExceptionInfo(FooServiceException.class); assertThat(exception).isEqualTo(new ExceptionInfo( FooServiceException.class.getName(), ImmutableList.of(newFieldInfo( FooServiceException.class, new FieldMetaData("stringVal", TFieldRequirementType.DEFAULT, new FieldValueMetaData(TType.STRING, false)))))); }
String newPrefix = prefix + f.getKey().getFieldName() + "."; org.apache.thrift.meta_data.MapMetaData meta = (org.apache.thrift.meta_data.MapMetaData)f.getValue().valueMetaData; if (!meta.keyMetaData.isStruct() && !meta.keyMetaData.isContainer()) { Map<Object, Object> map = (Map<Object, Object>)value; for (Entry<Object, Object> entry : map.entrySet()) { LOG.error(String.format("Unable to serializer field '%s' key type '%s' not supported", f.getKey().getFieldName(), meta.keyMetaData.getTypedefName())); LOG.error("Don't know how to convert to properties " + listMeta.elemMetaData.getTypedefName()); continue; if (listMeta.elemMetaData.isStruct()) { setPropertiesFromThrift(newPrefix + id + ".", properties, (org.apache.thrift.TBase)entry);
@VisibleForTesting static FieldInfo newFieldInfo(Class<?> parentType, FieldMetaData fieldMetaData) { requireNonNull(fieldMetaData, "fieldMetaData"); final FieldValueMetaData fieldValueMetaData = fieldMetaData.valueMetaData; final TypeSignature typeSignature; if (fieldValueMetaData.isStruct() && fieldValueMetaData.isTypedef() && parentType.getSimpleName().equals(fieldValueMetaData.getTypedefName())) { // Handle the special case where a struct field refers to itself, // where the Thrift compiler handles it as a typedef. typeSignature = TypeSignature.ofNamed(parentType); } else { typeSignature = toTypeSignature(fieldValueMetaData); } return new FieldInfo(fieldMetaData.fieldName, convertRequirement(fieldMetaData.requirementType), typeSignature); }
if (fieldValueMetaData.isBinary()) { return BINARY; if (fieldValueMetaData.isTypedef()) { unresolvedName = fieldValueMetaData.getTypedefName(); } else { unresolvedName = null;
if (metaData.valueMetaData.isContainer()) { if (metaData.valueMetaData instanceof SetMetaData) { elementMetaData = ((SetMetaData) metaData.valueMetaData).elemMetaData;