def UniqueName(): parts = [] e = element while e: parts.append(StringHelpers.ToPascalCase(e.Name)) e = e.Parent return "_".join(reversed(parts))
def __init__( self, identity, unique_name, name, element_or_source_line_column_tuple, ): super(Object, self).__init__(element_or_source_line_column_tuple) self.Identity = identity self.SingularName = name self.PluralName = inflect.plural(name) self.UniqueName = unique_name self.SingularPascalName = StringHelpers.ToPascalCase(self.SingularName) self.PluralPascalName = StringHelpers.ToPascalCase(self.PluralName) self.UniquePascalName = StringHelpers.ToPascalCase(self.UniqueName) self.SingularSnakeName = StringHelpers.ToSnakeCase(self.SingularName) self.PluralSnakeName = StringHelpers.ToSnakeCase(self.PluralName) self.UniqueSnakeName = StringHelpers.ToSnakeCase(self.UniqueName) self.constraints = [] self.children = [] # Add the identity info self.Add( Fundamental( (_script_name, inspect.currentframe().f_lineno, 0), "id", IntTypeInfo(min=0) if self.Identity == self.IdentityType.Integer else GuidTypeInfo(), is_identity=True, is_mutable=False, is_index=True, is_unique=True, ), ) if self.Identity in [ self.IdentityType.Simple, self.IdentityType.Deletable ]: self.Add( Fundamental( (_script_name, inspect.currentframe().f_lineno, 0), "created", DateTimeTypeInfo(), is_identity=True, is_mutable=False, is_index=False, is_unique=False, ), ) if self.Identity == self.IdentityType.Deletable: for name in ["deleted", "restored"]: self.Add( Fundamental( (_script_name, inspect.currentframe().f_lineno, 0), name, DateTimeTypeInfo(arity="?", ), is_identity=True, is_mutable=False, is_index=False, is_unique=False, ), )