@Override Object protoFromSoy(SoyValue field) { SoyList list = (SoyList) field; List<Object> uninterpretedValues = new ArrayList<>(); for (SoyValue item : list.asResolvedJavaList()) { uninterpretedValues.add(local.protoFromSoy(item)); } return uninterpretedValues; } };
@Override Object protoFromSoy(SoyValue field) { SoyList list = (SoyList) field; List<Object> uninterpretedValues = new ArrayList<>(); for (SoyValue item : list.asResolvedJavaList()) { uninterpretedValues.add(local.protoFromSoy(item)); } return uninterpretedValues; } };
@Override Object protoFromSoy(SoyValue field) { SoyMap map = (SoyMap) field; // Proto map fields use a non-standard API. A protobuf map is actually a repeated list of // MapEntry quasi-messages, which one cannot mutate in-place inside a map. ImmutableList.Builder<Message> mapEntries = ImmutableList.builder(); Message.Builder defaultInstance = DynamicMessage.newBuilder(messageDescriptor.getContainingType()); for (Map.Entry<? extends SoyValue, ? extends SoyValueProvider> entry : map.asJavaMap().entrySet()) { Message.Builder entryBuilder = defaultInstance.newBuilderForField(mapField); entryBuilder.setField(keyDescriptor, keyField.protoFromSoy(entry.getKey())); entryBuilder.setField( valueDescriptor, valueField.protoFromSoy(entry.getValue().resolve())); mapEntries.add(entryBuilder.build()); } return mapEntries.build(); } };
@Override public void assignField(Message.Builder builder, SoyValue value) { builder.setField(getDescriptor(), impl().protoFromSoy(value)); }
@Override Object protoFromSoy(SoyValue field) { SoyMap map = (SoyMap) field; // Proto map fields use a non-standard API. A protobuf map is actually a repeated list of // MapEntry quasi-messages, which one cannot mutate in-place inside a map. ImmutableList.Builder<Message> mapEntries = ImmutableList.builder(); Message.Builder defaultInstance = DynamicMessage.newBuilder(messageDescriptor.getContainingType()); for (Map.Entry<? extends SoyValue, ? extends SoyValueProvider> entry : map.asJavaMap().entrySet()) { Message.Builder entryBuilder = defaultInstance.newBuilderForField(mapField); entryBuilder.setField(keyDescriptor, keyField.protoFromSoy(entry.getKey())); entryBuilder.setField( valueDescriptor, valueField.protoFromSoy(entry.getValue().resolve())); mapEntries.add(entryBuilder.build()); } return mapEntries.build(); } };
@Override public void assignField(Message.Builder builder, SoyValue value) { builder.setField(getDescriptor(), impl().protoFromSoy(value)); }