def get_type(self, namespace=None, identifier=None, authority=None):
from . import types<EOL>from ..osid.osid_errors import NotFound, NullArgument<EOL>if namespace is None or identifier is None or authority is None:<EOL><INDENT>raise NullArgument()<EOL><DEDENT>type_identifier = namespace + '<STR_LIT>' + identifier + '<STR_LIT>' + authority<EOL>url_path = '<STR_LIT>' + type_identifier<EOL>try:<EOL><INDENT>result = self._get_request(url_path)<EOL><DEDENT>except NotFound:<EOL><INDENT>result = None<EOL>for t in types.TYPES:<EOL><INDENT>if t['<STR_LIT:id>'] == type_identifier:<EOL><INDENT>result = t<EOL><DEDENT><DEDENT>if result is None:<EOL><INDENT>raise NotFound()<EOL><DEDENT><DEDENT>return Type(result)<EOL>
Gets a Type by its string representation which is a combination
        of the authority and identifier.

        This method only returns the Type if it is known by the given
        identification components.

        arg:    namespace (string): the identifier namespace
        arg:    identifier (string): the identifier
        arg:    authority (string): the authority
        return: (osid.type.Type) - the Type
        raise:  NotFound - the type is not found
        raise:  NullArgument - null argument provided
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure
        compliance: mandatory - This method must be implemented.