/** * Constructs a sub-builder for a element at given index of the repeated message field, and * calls action on it. */ public Builder withBuilderAt(FieldDescriptor field, int index, BuildAction action) { Message.Builder repeatedFieldBuilder = configBuilder.newBuilderForField(field); repeatedFieldBuilder.mergeFrom((Message) configBuilder.getRepeatedField(field, index)); Builder elementBuilder = new Builder(repeatedFieldBuilder.build(), repeatedFieldBuilder, locations); action.accept(elementBuilder); // Call build so locations map is updated. ConfigSource configSource = elementBuilder.build(); // Update the list with the built element configBuilder.setRepeatedField(field, index, configSource.configMessage); return this; }
/** * Constructs a sub-builder for a element at given index of the repeated message field, and * calls action on it. */ public Builder withBuilderAt(FieldDescriptor field, int index, BuildAction action) { Message.Builder repeatedFieldBuilder = configBuilder.newBuilderForField(field); repeatedFieldBuilder.mergeFrom((Message) configBuilder.getRepeatedField(field, index)); Builder elementBuilder = new Builder(repeatedFieldBuilder.build(), repeatedFieldBuilder, locations); action.accept(elementBuilder); // Call build so locations map is updated. ConfigSource configSource = elementBuilder.build(); // Update the list with the built element configBuilder.setRepeatedField(field, index, configSource.configMessage); return this; }
@Override public Message getMessage(final int index) { return (Message) parent.getRepeatedField(field, index); }
@SuppressWarnings("unchecked") @Override public E get(final int index) { return (E) parent.getRepeatedField(field, index); }