Ejemplo n.º 1
0
        def UniqueName():
            parts = []

            e = element

            while e:
                parts.append(StringHelpers.ToPascalCase(e.Name))
                e = e.Parent

            return "_".join(reversed(parts))
Ejemplo n.º 2
0
    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,
                    ), )