@classmethod
def decode_data(cls, obj, typedef):
    """Decode an object.

        Args:
            obj (string): Encoded object to decode.
            typedef (dict): Type definition that should be used to decode the
                object.

        Returns:
            object: Decoded object.

        """
    raise NotImplementedError('Method must be overridden by the subclass.')
