def _resolved_new_traits(self, proj_ctx: 'ProjectionContext', current_PAS: '******'): resolved_trait_set = ResolvedTraitSet(proj_ctx._projection_directive._res_opt) projection_owner_name = proj_ctx._projection_directive._original_source_attribute_name if proj_ctx._projection_directive._original_source_attribute_name is not None else '' for trait_ref in self.traits_to_add: trait_ref_copy = trait_ref._fetch_resolved_traits(proj_ctx._projection_directive._res_opt).deep_copy() self._replace_wildcard_characters(proj_ctx._projection_directive._res_opt, trait_ref_copy, projection_owner_name, current_PAS) resolved_trait_set = resolved_trait_set.merge_set(trait_ref_copy) return resolved_trait_set
def _construct_resolved_traits(self, rtsb: 'ResolvedTraitSetBuilder', res_opt: 'ResolveOptions') -> None: from cdm.resolvedmodel import ResolvedTraitSet # get only the elevated traits from attributes first, then add in all traits from this definition if self.members: rts_elevated = ResolvedTraitSet(res_opt) for att in self.members: rts_att = att._fetch_resolved_traits(res_opt) if rts_att and rts_att.has_elevated: rts_elevated = rts_elevated.merge_set(rts_att, True) rtsb.merge_traits(rts_elevated) self._construct_resolved_traits_def(None, rtsb, res_opt)
def _construct_resolved_traits(self, rtsb: 'ResolvedTraitSetBuilder', res_opt: 'ResolveOptions') -> None: from cdm.resolvedmodel import ResolvedTraitSet base = self.extends_entity if base: # merge in all from base class rtsb.merge_traits(base._fetch_resolved_traits(res_opt)) if self.attributes: rts_elevated = ResolvedTraitSet(res_opt) for att in self.attributes: rts_att = att._fetch_resolved_traits(res_opt) if rts_att and rts_att.has_elevated: rts_elevated = rts_elevated.merge_set(rts_att, True) rtsb.merge_traits(rts_elevated) self._construct_resolved_traits_def(None, rtsb, res_opt)