diff --git a/generator/src/main/java/org/sudu/protogen/generator/field/FieldGenerationHelper.java b/generator/src/main/java/org/sudu/protogen/generator/field/FieldGenerationHelper.java new file mode 100644 index 0000000..17c1d0e --- /dev/null +++ b/generator/src/main/java/org/sudu/protogen/generator/field/FieldGenerationHelper.java @@ -0,0 +1,25 @@ +package org.sudu.protogen.generator.field; + +import com.squareup.javapoet.ParameterSpec; +import org.sudu.protogen.descriptors.Message; +import org.sudu.protogen.generator.GenerationContext; +import org.sudu.protogen.utils.Poem; + +import java.util.List; +import java.util.stream.Stream; + +public class FieldGenerationHelper { + + public static Stream processAllFields(Message message, GenerationContext context) { + return message.getFields().stream() + .map(field -> context.generatorsHolder().generate(field)) + .filter(FieldProcessingResult::isNonVoid); + } + + public static List processFieldsToParameters(Message message, GenerationContext context) { + return processAllFields(message, context) + .map(FieldProcessingResult::field) + .map(Poem::fieldToParameter) + .toList(); + } +}