@classmethod
def RegisterAttributeClass(cls, attribute_class):
    """
        Registers a class to be considered as an attribute class.

        This provides a way of extending the Interface behavior by declaring new attributes classes
        such as ScalarAttribute.

        :param Attribute attribute_class:
            An Attribute class to register as an attribute class.

        :return set(Attribute):
            Returns a set with all the current attribute classes.
        """
    result = set(cls._ATTRIBUTE_CLASSES)
    result.add(attribute_class)
    cls._ATTRIBUTE_CLASSES = tuple(result)
    return result
