blob: 76a2e61dc282ac344fed219894fd97ffe950ea6f [file] [log] [blame]
#
# -*- coding: utf-8 -*-
#
# This file is part of reclass
#
import dictitem
import listitem
class ScaItem(object):
def __init__(self, value):
self._value = value
def assembleRefs(self, context={}):
return
def allRefs(self):
return True
def has_references(self):
return False
def contents(self):
return self._value
def merge_over_with_context(self, item, context, options):
pass
def merge_over(self, item, options):
if isinstance(item, ScaItem):
return self
elif isinstance(item, listitem.ListItem):
if options.allow_scalar_over_list:
return self
else:
raise TypeError('allow scalar over list = False: cannot merge %s over %s' % (repr(self), repr(item)))
elif isinstance(item, dictitem.DictItem):
if options.allow_scalar_over_dict:
return self
else:
raise TypeError('allow scalar over dict = False: cannot merge %s over %s' % (repr(self), repr(item)))
raise TypeError('Cannot merge %s over %s' % (repr(self), repr(item)))
def render(self, context, options):
return self._value
def __repr__(self):
return 'ScaItem({0!r})'.format(self._value)