builder.addArrayValue(listElementBuilder.build()); builder.addArrayValue(listElementBuilder.build());
builder.addArrayValue(listElementBuilder.build()); builder.addArrayValue(listElementBuilder.build());
Common.TypedValue serializeArray(List<Object> list, Common.TypedValue.Builder builder, Common.Rep protoArrayComponentRep) { for (Object element : list) { if (element instanceof List) { // We have a list of lists: recursively build up the protobuf @SuppressWarnings("unchecked") List<Object> subList = (List<Object>) element; Common.TypedValue.Builder subListBuilder = Common.TypedValue.newBuilder(); // This is "technically" an array, but we just persist the underlying component type subListBuilder.setType(protoArrayComponentRep); Common.TypedValue protoSubList = serializeArray(subList, subListBuilder, protoArrayComponentRep); builder.addArrayValue(protoSubList); } else { // We have a list of "scalars", just serialize the value Common.TypedValue.Builder elementBuilder = Common.TypedValue.newBuilder(); if (null == element) { writeToProtoWithType(elementBuilder, null, Common.Rep.NULL); } else { writeToProtoWithType(elementBuilder, element, protoArrayComponentRep); } builder.addArrayValue(elementBuilder.build()); } } return builder.build(); }
Common.TypedValue serializeArray(List<Object> list, Common.TypedValue.Builder builder, Common.Rep protoArrayComponentRep) { for (Object element : list) { if (element instanceof List) { // We have a list of lists: recursively build up the protobuf @SuppressWarnings("unchecked") List<Object> subList = (List<Object>) element; Common.TypedValue.Builder subListBuilder = Common.TypedValue.newBuilder(); // This is "technically" an array, but we just persist the underlying component type subListBuilder.setType(protoArrayComponentRep); Common.TypedValue protoSubList = serializeArray(subList, subListBuilder, protoArrayComponentRep); builder.addArrayValue(protoSubList); } else { // We have a list of "scalars", just serialize the value Common.TypedValue.Builder elementBuilder = Common.TypedValue.newBuilder(); if (null == element) { writeToProtoWithType(elementBuilder, null, Common.Rep.NULL); } else { writeToProtoWithType(elementBuilder, element, protoArrayComponentRep); } builder.addArrayValue(elementBuilder.build()); } } return builder.build(); }