private Parameter createGroup(int contextParameter, List<Type> types, List<Annotation[]> annotationsList, List<Field> fields,
                                  Class groupType, Method methodType)
    {
        List<Parameter> parameters = new ArrayList<>();

        int posList = 0;
        for (int i = contextParameter + 1; i < types.size(); i++)
        {
            final Type type = types.get(i);
            final Annotation[] annotations = annotationsList.get(i);
            Parameter param = createParameter(fields, methodType, i, type, annotations);
            if (param.getParameterType() == ParameterType.INDEXED)
            {
                param.offer(Properties.FIXED_POSITION, posList++);
            }
            parameters.add(param);
        }

        Parameter parameter = new Parameter();
        parameter.offer(Properties.PARSER, new GroupParser(parameter, groupType, parameters));
        return parameter;
    }