Skip to content

Commit d0a8c42

Browse files
committed
Merge ConvertBQTableFieldToProtoField and ConvertBQStructToProtoMsg
1 parent 4ac97b3 commit d0a8c42

File tree

1 file changed

+16
-26
lines changed

1 file changed

+16
-26
lines changed

google-cloud-bigquerystorage/src/main/java/com/google/cloud/bigquery/storage/v1alpha2/BQTableSchemaToProtoDescriptor.java

+16-26
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,14 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
8686
List<FieldDescriptorProto> fields = new ArrayList<FieldDescriptorProto>();
8787
int index = 1;
8888
for (Table.TableFieldSchema BQTableField : BQTableSchema.getFieldsList()) {
89+
String currentScope = scope + "__" + BQTableField.getName();
8990
if (BQTableField.getType() == Table.TableFieldSchema.Type.STRUCT) {
9091
ImmutableList<Table.TableFieldSchema> fieldList =
9192
ImmutableList.copyOf(BQTableField.getFieldsList());
92-
String currentScope = scope + "__" + BQTableField.getName();
9393
if (dependencyMap.containsKey(fieldList)) {
9494
Descriptor descriptor = dependencyMap.get(fieldList);
9595
dependenciesList.add(descriptor.getFile());
96-
fields.add(ConvertBQStructToProtoMessage(BQTableField, index++, descriptor.getName()));
96+
fields.add(ConvertBQTableFieldToProtoField(BQTableField, index++, descriptor.getName()));
9797
} else {
9898
Descriptor descriptor =
9999
ConvertBQTableSchemaToProtoDescriptorImpl(
@@ -102,10 +102,10 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
102102
dependencyMap);
103103
dependenciesList.add(descriptor.getFile());
104104
dependencyMap.put(fieldList, descriptor);
105-
fields.add(ConvertBQStructToProtoMessage(BQTableField, index++, currentScope));
105+
fields.add(ConvertBQTableFieldToProtoField(BQTableField, index++, currentScope));
106106
}
107107
} else {
108-
fields.add(ConvertBQTableFieldToProtoField(BQTableField, index++));
108+
fields.add(ConvertBQTableFieldToProtoField(BQTableField, index++, currentScope));
109109
}
110110
}
111111
FileDescriptor[] dependenciesArray = new FileDescriptor[dependenciesList.size()];
@@ -121,37 +121,27 @@ private static Descriptor ConvertBQTableSchemaToProtoDescriptorImpl(
121121
}
122122

123123
/**
124-
* Constructs a FieldDescriptorProto for non-struct BQ fields.
124+
* Converts a BQTableField to ProtoField
125125
*
126126
* @param BQTableField BQ Field used to construct a FieldDescriptorProto
127127
* @param index Index for protobuf fields.
128+
* @param scope used to name descriptors
128129
*/
129130
private static FieldDescriptorProto ConvertBQTableFieldToProtoField(
130-
Table.TableFieldSchema BQTableField, int index) {
131-
String fieldName = BQTableField.getName();
132-
Table.TableFieldSchema.Mode mode = BQTableField.getMode();
133-
return FieldDescriptorProto.newBuilder()
134-
.setName(fieldName)
135-
.setType((FieldDescriptorProto.Type) BQTableSchemaTypeMap.get(BQTableField.getType()))
136-
.setLabel((FieldDescriptorProto.Label) BQTableSchemaModeMap.get(mode))
137-
.setNumber(index)
138-
.build();
139-
}
140-
141-
/**
142-
* Constructs a FieldDescriptorProto for a Struct type BQ field.
143-
*
144-
* @param BQTableField BQ Field used to construct a FieldDescriptorProto
145-
* @param index Index for protobuf fields.
146-
* @param scope Need scope to prevent naming issues
147-
*/
148-
private static FieldDescriptorProto ConvertBQStructToProtoMessage(
149131
Table.TableFieldSchema BQTableField, int index, String scope) {
150-
String fieldName = BQTableField.getName();
151132
Table.TableFieldSchema.Mode mode = BQTableField.getMode();
133+
String fieldName = BQTableField.getName();
134+
if (BQTableField.getType() == Table.TableFieldSchema.Type.STRUCT) {
135+
return FieldDescriptorProto.newBuilder()
136+
.setName(fieldName)
137+
.setTypeName(scope)
138+
.setLabel((FieldDescriptorProto.Label) BQTableSchemaModeMap.get(mode))
139+
.setNumber(index)
140+
.build();
141+
}
152142
return FieldDescriptorProto.newBuilder()
153143
.setName(fieldName)
154-
.setTypeName(scope)
144+
.setType((FieldDescriptorProto.Type) BQTableSchemaTypeMap.get(BQTableField.getType()))
155145
.setLabel((FieldDescriptorProto.Label) BQTableSchemaModeMap.get(mode))
156146
.setNumber(index)
157147
.build();

0 commit comments

Comments
 (0)