| 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..8e46b576d411f3d5579518e86a59f8c01d48af21
|
| --- /dev/null
|
| +++ b/tools/json_schema_compiler/any_helper.py
|
| @@ -0,0 +1,37 @@
|
| +# 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 Create(self, any_prop, src):
|
| + """Create an empty Any instance.
|
| + """
|
| + return 'new %s' % ANY_CLASS
|
| +
|
| + def CopyInto(self, any_prop, src, dst):
|
| + """Copy |src| into |dst|.|any_prop|.
|
| +
|
| + 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
|
| +
|
|
|