Camera2: Dump enum data types as strings, not integers
Change-Id: Ia225662d4ee0aad81b22b96355d7f39c4aa70d42
diff --git a/camera/docs/metadata_model.py b/camera/docs/metadata_model.py
index e91fcd1..b403a47 100644
--- a/camera/docs/metadata_model.py
+++ b/camera/docs/metadata_model.py
@@ -720,7 +720,7 @@
for i in self.entries:
yield i
-class EnumValue(object):
+class EnumValue(Node):
"""
A class corresponding to a <value> element within an <enum> within an <entry>.
@@ -729,16 +729,14 @@
id: An optional numeric string, e.g. '0' or '0xFF'
optional: A boolean
notes: A string describing the notes, or None.
+ parent: An edge to the parent, always an Enum instance.
"""
- def __init__(self, name, id=None, optional=False, notes=None):
+ def __init__(self, name, parent, id=None, optional=False, notes=None):
self._name = name # str, e.g. 'ON' or 'OFF'
self._id = id # int, e.g. '0'
self._optional = optional # bool
self._notes = notes # None or str
-
- @property
- def name(self):
- return self._name
+ self._parent = parent
@property
def id(self):
@@ -752,7 +750,10 @@
def notes(self):
return self._notes
-class Enum(object):
+ def _get_children(self):
+ return None
+
+class Enum(Node):
"""
A class corresponding to an <enum> element within an <entry>.
@@ -762,19 +763,19 @@
"""
def __init__(self, parent, values, ids={}, optionals=[], notes={}):
self._values = \
- [ EnumValue(val, ids.get(val), val in optionals, notes.get(val)) \
+ [ EnumValue(val, self, ids.get(val), val in optionals, notes.get(val)) \
for val in values ]
self._parent = parent
-
- @property
- def parent(self):
- return self._parent
+ self._name = None
@property
def values(self):
return (i for i in self._values)
+ def _get_children(self):
+ return (i for i in self._values)
+
class Entry(Node):
"""
A node corresponding to an <entry> element.
@@ -910,7 +911,8 @@
return self._enum
def _get_children(self):
- return None
+ if self.enum:
+ yield self.enum
def sort_children(self):
return None