@VisibleForTesting static <E extends FieldModel> List<FieldModel> responseInitFields(List<E> fields) { HashSet<Oneof> oneofSet = new HashSet<>(); return fields .stream() .filter(f -> f.isPrimitive() && !f.isRepeated()) .filter( f -> { // Includes field if field is not a part of a oneof, or it's the first field of the // oneof. Oneof oneof = f.getOneof(); return oneof == null || oneofSet.add(oneof); }) .collect(Collectors.toList()); }
@Override public List<String> getParameterList(MethodModel method) { return method .getInputFields() .stream() .filter(f -> f.getOneof() == null && !isIgnoredParameter(f.getSimpleName())) .map(FieldModel::getSimpleName) .collect(Collectors.toList()); } }
static Iterable<FieldModel> getRequiredFields( DiagCollector diagCollector, MethodModel method, List<String> requiredFieldNames) { ImmutableList.Builder<FieldModel> fieldsBuilder = ImmutableList.builder(); for (String fieldName : requiredFieldNames) { FieldModel requiredField = method.getInputField(fieldName); if (requiredField == null) { diagCollector.addDiag( Diag.error( SimpleLocation.TOPLEVEL, "Required field '%s' not found (in method %s)", fieldName, method.getFullName())); return null; } else if (requiredField.getOneof() != null) { diagCollector.addDiag( Diag.error( SimpleLocation.TOPLEVEL, "oneof field %s cannot be required (in method %s)", fieldName, method.getFullName())); return null; } fieldsBuilder.add(requiredField); } return fieldsBuilder.build(); }
private void generateField(MethodModel method, MethodView.Builder methodView) { List<String> parameterList = new ArrayList<>(); List<FieldModel> fieldList = new ArrayList<>(); Iterable<? extends FieldModel> inputFields = method.getInputFields(); for (FieldModel field : inputFields) { String fieldName = field.getSimpleName(); if (field.getOneof() == null && !helperTransformer.isIgnoredParameter(field)) { parameterList.add(fieldName); fieldList.add(field); } } List<String> parameters = filteredInputFields(method, fieldList); int numParams = parameters.size(); if (method.hasExtraFieldMask()) { numParams += 1; } if (numParams > 0 && numParams <= FLATTENING_THRESHOLD) { methodView.flattening(generateFlattening(parameters)); } methodView.requiredFields(parameters); methodView.resourceNameTreatment(helperTransformer.getResourceNameTreatment(method)); }
Mockito.when(field1.isPrimitive()).thenReturn(true); Mockito.when(field1.isRepeated()).thenReturn(false); Mockito.when(field1.getOneof()).thenReturn(oneof1); Mockito.when(field2.getOneof()).thenReturn(oneof1); Mockito.when(field3.isPrimitive()).thenReturn(true); Mockito.when(field3.isRepeated()).thenReturn(false); Mockito.when(field3.getOneof()).thenReturn(oneof2);
Oneof oneof = parameterField.getOneof(); if (oneof != null) { String oneofName = oneof.getName();