Index: tools/json_schema_compiler/any_helper.py |
diff --git a/tools/json_schema_compiler/any_helper.py b/tools/json_schema_compiler/any_helper.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4502dab0ce97a2be99bcb0e893d8225634840103 |
--- /dev/null |
+++ b/tools/json_schema_compiler/any_helper.py |
@@ -0,0 +1,32 @@ |
+# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+ANY_NAMESPACE = 'json_schema_compiler::any' |
+ANY_CLASS = ANY_NAMESPACE + '::Any' |
+ |
+class AnyHelper(object): |
+ """A util class that generates code that uses |
+ tools/json_schema_compiler/any.cc. |
+ """ |
+ def Init(self, any_prop, src, dst): |
+ """Initialize |dst|.|any_prop| to |src|. |
+ |
+ src: Value* |
+ dst: Type* |
+ """ |
+ if any_prop.optional: |
+ return '%s->%s->Init(*%s)' % (dst, any_prop.name, src) |
+ else: |
+ return '%s->%s.Init(*%s)' % (dst, any_prop.name, src) |
+ |
+ def GetValue(self, any_prop, var): |
+ """Get |var| as a const Value&. |
+ |
+ var: Any* or Any |
+ """ |
+ if any_prop.optional: |
+ return '%s->value()' % var |
+ else: |
+ return '%s.value()' % var |
+ |