    from Attr import Attr
    from types import StringType, IntType

    class EnumAttr(Attr):

        def __init__(self, dict):
            Attr.__init__(self, dict)
            # We expect than an 'Enums' key holds the enumeration values
            enums = self['Enums']
            enums = enums.split(',')
            enums = [enum.strip() for enum in enums]
            self._enums = enums
            set = {}
            i = 0
            for enum in self._enums:
                set[enum] = i
                i += 1
            self._enumSet = set

        def enums(self):
            """Return a sequence of the enum values in their string form."""
            return self._enums

        def hasEnum(self, value):
            if isinstance(value, StringType):
                return self._enumSet.has_key(value)
            else:
                return value >= 0 and value < len(self._enums)

        def intValueForString(self, s):
            return self._enumSet[s]