def check(self, value, context, *args, **kwargs): if not super(MuranoTypeParameter, self).check( value, context, *args, **kwargs): return False if isinstance(value, six.string_types): if not self._resolve_strings: return False value = helpers.get_class(value, context).get_reference() if isinstance(value, dsl_types.MuranoTypeReference): if not self._base_type: return True return self._base_type.is_compatible(value) return True
def find_owner(self, type, optional=False): if isinstance(type, six.string_types): type = helpers.get_class(type) elif isinstance(type, dsl_types.MuranoTypeReference): type = type.type owner = helpers.find_object_owner( self.object, lambda t: type.is_compatible(t)) if owner: return MuranoObjectInterface(owner) if not optional: raise ValueError('Object is not owned by any instance of type ' '{0}'.format(type.name)) return None
def find_owner(self, type, optional=False): if isinstance(type, six.string_types): type = helpers.get_class(type) elif isinstance(type, dsl_types.MuranoTypeReference): type = type.type p = self.__object.owner while p is not None: if type.is_compatible(p): return MuranoObjectInterface(p, self.__executor) p = p.owner if not optional: raise ValueError('Object is not owned by any instance of type ' '{0}'.format(type.name)) return None
def convert(self, value, sender, context, function_spec, engine, *args, **kwargs): context = self._context or context if isinstance(value, yaql_expressions.Expression): value = value(utils.NO_VALUE, context, engine) value = super(MuranoTypeParameter, self).convert( value, sender, context, function_spec, engine) if isinstance(value, six.string_types): value = helpers.get_class(value, context).get_reference() if self._base_type and not self._base_type.is_compatible(value): raise ValueError('Value must be subtype of {0}'.format( self._base_type.name )) return value
def find_owner(self, type, optional=False): if isinstance(type, six.string_types): type = helpers.get_class(type) elif isinstance(type, dsl_types.MuranoTypeReference): type = type.type p = self.__object.owner while p is not None: if type.is_compatible(p): return MuranoObjectInterface(p) p = p.owner if not optional: raise ValueError('Object is not owned by any instance of type ' '{0}'.format(type.name)) return None
def convert(self, value, sender, context, function_spec, engine, *args, **kwargs): context = self._context or context if isinstance(value, yaql_expressions.Expression): value = value(utils.NO_VALUE, context, engine) value = super(MuranoTypeName, self).convert( value, sender, context, function_spec, engine) if isinstance(value, types.StringTypes): murano_type = helpers.get_type(context) value = dsl_types.MuranoClassReference( helpers.get_class( murano_type.namespace_resolver.resolve_name( value), context)) return value
def convert(self, value, sender, context, function_spec, engine, *args, **kwargs): context = self._context or context if isinstance(value, yaql_expressions.Expression): value = value(utils.NO_VALUE, context, engine) value = super(MuranoTypeParameter, self).convert(value, sender, context, function_spec, engine) if isinstance(value, six.string_types): value = helpers.get_class(value, context).get_reference() if self._base_type and not self._base_type.is_compatible(value): raise ValueError('Value must be subtype of {0}'.format( self._base_type.name)) return value
def convert(self, value, sender, context, function_spec, engine, *args, **kwargs): context = self._context or context if isinstance(value, yaql_expressions.Expression): value = value(utils.NO_VALUE, context, engine) value = super(MuranoTypeName, self).convert(value, sender, context, function_spec, engine) if isinstance(value, types.StringTypes): murano_type = helpers.get_type(context) value = dsl_types.MuranoClassReference( helpers.get_class( murano_type.namespace_resolver.resolve_name(value), context)) return value
def implementation(ctx=None): value2 = value if ctx is None: ctx = self._context or context if isinstance(value2, yaql_expressions.Expression): value2 = value2(utils.NO_VALUE, ctx, engine) value2 = super(MuranoTypeParameter, self).convert( value2, sender, ctx, function_spec, engine) if isinstance(value2, six.string_types): value2 = helpers.get_class(value2, ctx).get_reference() if self._base_type and not self._base_type.is_compatible(value): raise ValueError('Value must be subtype of {0}'.format( self._base_type.name )) return value2
def convert(self, value, sender, context, function_spec, engine, *args, **kwargs): context = self._context or context if isinstance(value, yaql_expressions.Expression): value = value(utils.NO_VALUE, context, engine) value = super(MuranoTypeName, self).convert( value, sender, context, function_spec, engine) if isinstance(value, six.string_types): if function_spec.meta.get(constants.META_MURANO_METHOD): context = helpers.get_caller_context(context) murano_type = helpers.get_type(context) value = helpers.get_class( murano_type.namespace_resolver.resolve_name(value), context).get_reference() return value
def ns_resolve(context, prefix, name): return helpers.get_class(prefix + ':' + name, context).get_reference()
def ns_resolve(context, prefix, name): murano_type = helpers.get_type(context) return dsl_types.MuranoClassReference( helpers.get_class( murano_type.namespace_resolver.resolve_name(prefix + ':' + name), context))
def ns_resolve(context, prefix, name): murano_type = helpers.get_type(context) return dsl_types.MuranoClassReference( helpers.get_class( murano_type.namespace_resolver.resolve_name( prefix + ':' + name), context))
def ns_resolve(context, prefix, name): murano_type = helpers.get_type(context) return helpers.get_class(murano_type.namespace_resolver.resolve_name(prefix + ":" + name), context).get_reference()