# 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