# Path: dataproperty/_align.py
# class Align(enum.Enum):
#     AUTO = (1 << 0, "auto")
#     LEFT = (1 << 1, "left")
#     RIGHT = (1 << 2, "right")
#     CENTER = (1 << 3, "center")
# 
#     @property
#     def align_code(self) -> int:
#         return self.__align_code
# 
#     @property
#     def align_string(self) -> str:
#         return self.__align_string
# 
#     def __init__(self, code: int, string: str):
#         self.__align_code = code
#         self.__align_string = string


from typepy import Typecode
from ._align import Align
"""
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
"""




class AlignGetter:
    @property
    def typecode_align_table(self):
        raise NotImplementedError()

    @typecode_align_table.setter
    def typecode_align_table(self, x):
        self.__typecode_align_table = x

    def get_align_from_typecode(self, typecode):
        # pytype: disable=attribute-error
        return self.__typecode_align_table.get(typecode, self.default_align)
        # pytype: enable=attribute-error

    def __init__(self):
        self.typecode_align_table = {
            Typecode.STRING: Align.LEFT,

# Path: dataproperty/_align.py
# class Align(enum.Enum):
#     AUTO = (1 << 0, "auto")
#     LEFT = (1 << 1, "left")
#     RIGHT = (1 << 2, "right")
#     CENTER = (1 << 3, "center")
# 
#     @property
#     def align_code(self) -> int:
#         return self.__align_code
# 
#     @property
#     def align_string(self) -> str:
#         return self.__align_string
# 
#     def __init__(self, code: int, string: str):
#         self.__align_code = code
#         self.__align_string = string


# Path: dataproperty/_align_getter.py
from typepy import Typecode
from ._align import Align

"""
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
"""




class AlignGetter:
    @property
    def typecode_align_table(self):
        raise NotImplementedError()

    @typecode_align_table.setter
    def typecode_align_table(self, x):
        self.__typecode_align_table = x

    def get_align_from_typecode(self, typecode):
        # pytype: disable=attribute-error
        return self.__typecode_align_table.get(typecode, self.default_align)
        # pytype: enable=attribute-error

    def __init__(self):
        self.typecode_align_table = {
            Typecode.STRING: Align.LEFT,

            Typecode.INTEGER: Align.RIGHT,