Currently, ParameterStructs utility class only check for @Parameter annotations in order to structify an object. Instead, members should be inferred from the signature of the functional method of the class of the passed object. This should have the following behavior:
- If no
@Parameter annotations are given, the type and the ItemIO should be inferred from the functional method signature. In doing so, the return type will always be ItemIO.Output and method parameters should be ItemIO.Input. If a method parameter is ItemIO.Both, it should be annotated with a @Mutable annotation. Methods to get the functional method types from a type and the @Mutable already exists.
- Additionally, the
@Parameter annotations may be given in order to specify the names and further metadata of the member (e.g. required status). Also, this enabled to do fail fast checks if the ItemIO or the number of parameters does not match the types inferred from the functional method.
- A
ItemIO.Auto was already added in order to indicate that the ItemIO should be automatically inferred from the functional method. ItemIO.Auto should be made the default.
Currently,
ParameterStructsutility class only check for@Parameterannotations in order to structify an object. Instead, members should be inferred from the signature of the functional method of the class of the passed object. This should have the following behavior:@Parameterannotations are given, the type and theItemIOshould be inferred from the functional method signature. In doing so, the return type will always beItemIO.Outputand method parameters should beItemIO.Input. If a method parameter isItemIO.Both, it should be annotated with a@Mutableannotation. Methods to get the functional method types from a type and the@Mutablealready exists.@Parameterannotations may be given in order to specify the names and further metadata of the member (e.g. required status). Also, this enabled to do fail fast checks if theItemIOor the number of parameters does not match the types inferred from the functional method.ItemIO.Autowas already added in order to indicate that theItemIOshould be automatically inferred from the functional method.ItemIO.Autoshould be made the default.