summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Henigan <robert.henigan@livio.io>2020-08-14 16:04:30 -0400
committerGitHub <noreply@github.com>2020-08-14 16:04:30 -0400
commit84e8ef3940b7f2e8e3cfeeb6f432230a5918d53f (patch)
treeccf700fa2214c449d70a1b69a1e729869030aed0
parent9a1a356160e0d994349306da87b448e881159195 (diff)
parentd637a72c6583fc58ae6fb9b4d9889cd9d835654e (diff)
downloadsdl_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.java2
-rw-r--r--generator/templates/javadoc_return.java3
-rw-r--r--generator/templates/javadoc_template.java3
-rw-r--r--generator/transformers/common_producer.py40
-rw-r--r--generator/transformers/functions_producer.py1
-rw-r--r--generator/transformers/structs_producer.py2
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)