diff options
author | Robert Henigan <robert.henigan@livio.io> | 2020-08-14 16:04:30 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-14 16:04:30 -0400 |
commit | 84e8ef3940b7f2e8e3cfeeb6f432230a5918d53f (patch) | |
tree | ccf700fa2214c449d70a1b69a1e729869030aed0 | |
parent | 9a1a356160e0d994349306da87b448e881159195 (diff) | |
parent | d637a72c6583fc58ae6fb9b4d9889cd9d835654e (diff) | |
download | sdl_android-84e8ef3940b7f2e8e3cfeeb6f432230a5918d53f.tar.gz |
Merge pull request #1439 from smartdevicelink/feature/issue_1438_missing_min_max
Add missing attributes to the generated javadoc
-rw-r--r-- | generator/templates/base_template.java | 2 | ||||
-rw-r--r-- | generator/templates/javadoc_return.java | 3 | ||||
-rw-r--r-- | generator/templates/javadoc_template.java | 3 | ||||
-rw-r--r-- | generator/transformers/common_producer.py | 40 | ||||
-rw-r--r-- | generator/transformers/functions_producer.py | 1 | ||||
-rw-r--r-- | generator/transformers/structs_producer.py | 2 |
6 files changed, 49 insertions, 2 deletions
diff --git a/generator/templates/base_template.java b/generator/templates/base_template.java index 0f1d58c95..2cd4f450d 100644 --- a/generator/templates/base_template.java +++ b/generator/templates/base_template.java @@ -53,6 +53,7 @@ import {{i}};{{ '\n' if loop.last }} * <th>Type</th> * <th>Description</th> * <th>Required</th> + * <th>Notes</th> * <th>Version Available</th> * </tr> {%- for param in params %} @@ -61,6 +62,7 @@ import {{i}};{{ '\n' if loop.last }} * <td>{{param.return_type}}</td> * <td>{%- for d in param.description %}{{d}}{%- endfor %}</td> * <td>{%- if param.mandatory is eq true %}Y{%- else %}N{%- endif %}</td> + * <td>{%- for k in param.values %}{{ '{' if loop.first}}"{{k}}": {{param.values[k]}}{{ ', ' if not loop.last else '}'}}{%- endfor %}</td> * <td>{%- if param.since is defined %}SmartDeviceLink {{param.since}}{%- endif %}</td> * </tr> {%- endfor %} diff --git a/generator/templates/javadoc_return.java b/generator/templates/javadoc_return.java index d2f4a3c54..e37a69b87 100644 --- a/generator/templates/javadoc_return.java +++ b/generator/templates/javadoc_return.java @@ -8,6 +8,9 @@ {%- else %} * @return {{p.return_type}} {%- endif %} + {%- if p.values is defined and p.values %} + * {%- for k in p.values %}{{ ' {' if loop.first}}"{{k}}": {{p.values[k]}}{{ ', ' if not loop.last else '}'}}{%- endfor %} + {%- endif %} {%- if p.since is defined %} * @since SmartDeviceLink {{p.since}} {%- endif %}
\ No newline at end of file diff --git a/generator/templates/javadoc_template.java b/generator/templates/javadoc_template.java index 5b5d3bc0c..93d4e7740 100644 --- a/generator/templates/javadoc_template.java +++ b/generator/templates/javadoc_template.java @@ -8,6 +8,9 @@ {%- else %} * @param {{p.last}} {%- endif %} + {%- if p.values is defined and p.values %} + * {%- for k in p.values %}{{ ' {' if loop.first}}"{{k}}": {{p.values[k]}}{{ ', ' if not loop.last else '}'}}{%- endfor %} + {%- endif %} {%- if p.since is defined %} * @since SmartDeviceLink {{p.since}} {%- endif %}
\ No newline at end of file diff --git a/generator/transformers/common_producer.py b/generator/transformers/common_producer.py index ceb4b3cec..ba8daf18e 100644 --- a/generator/transformers/common_producer.py +++ b/generator/transformers/common_producer.py @@ -5,7 +5,7 @@ Common transformation import logging import re from abc import ABC -from collections import namedtuple +from collections import namedtuple, OrderedDict from model.array import Array from model.enum import Enum @@ -79,6 +79,44 @@ class InterfaceProducerCommon(ABC): return re.sub(r'(\s{2,}|\n|\[@TODO.+)', ' ', ''.join(d)).strip() if d else '' @staticmethod + def extract_values(param): + p = OrderedDict() + if hasattr(param.param_type, 'min_size'): + p['array_min_size'] = param.param_type.min_size + if hasattr(param.param_type, 'max_size'): + p['array_max_size'] = param.param_type.max_size + if hasattr(param, 'default_value'): + if hasattr(param.default_value, 'name'): + p['default_value'] = param.default_value.name + else: + p['default_value'] = param.default_value + elif hasattr(param.param_type, 'default_value'): + if hasattr(param.param_type.default_value, 'name'): + p['default_value'] = param.param_type.default_value.name + else: + p['default_value'] = param.param_type.default_value + if hasattr(param.param_type, 'min_value'): + p['num_min_value'] = param.param_type.min_value + elif hasattr(param.param_type, 'element_type') and hasattr(param.param_type.element_type, 'min_value'): + p['num_min_value'] = param.param_type.element_type.min_value + if hasattr(param.param_type, 'max_value'): + p['num_max_value'] = param.param_type.max_value + elif hasattr(param.param_type, 'element_type') and hasattr(param.param_type.element_type, 'max_value'): + p['num_max_value'] = param.param_type.element_type.max_value + if hasattr(param.param_type, 'min_length'): + p['string_min_length'] = param.param_type.min_length + elif hasattr(param.param_type, 'element_type') and hasattr(param.param_type.element_type, 'min_length'): + p['string_min_length'] = param.param_type.element_type.min_length + if hasattr(param.param_type, 'max_length'): + p['string_max_length'] = param.param_type.max_length + elif hasattr(param.param_type, 'element_type') and hasattr(param.param_type.element_type, 'max_length'): + p['string_max_length'] = param.param_type.element_type.max_length + + # Filter None values + filtered_values = {k: v for k, v in p.items() if v is not None} + return filtered_values + + @staticmethod def replace_sync(name): """ :param name: string with item name diff --git a/generator/transformers/functions_producer.py b/generator/transformers/functions_producer.py index df8ab2936..8b5a83aee 100644 --- a/generator/transformers/functions_producer.py +++ b/generator/transformers/functions_producer.py @@ -119,6 +119,7 @@ class FunctionsProducer(InterfaceProducerCommon): p['since'] = param.since p['deprecated'] = param.deprecated p['origin'] = param.origin + p['values'] = self.extract_values(param) d = self.extract_description(param.description) if param.name == 'success': d = 'whether the request is successfully processed' diff --git a/generator/transformers/structs_producer.py b/generator/transformers/structs_producer.py index a1af54fe8..c7c5a3058 100644 --- a/generator/transformers/structs_producer.py +++ b/generator/transformers/structs_producer.py @@ -105,7 +105,7 @@ class StructsProducer(InterfaceProducerCommon): p['since'] = param.since p['deprecated'] = param.deprecated p['origin'] = param.origin - + p['values'] = self.extract_values(param) d = self.extract_description(param.description) if d: p['description'] = textwrap.wrap(d, 90) |