Eiffel Media API
Overview Cluster Class Classes Index      Previous Next      Top Features

xml.resolver.uri

Class XM_SIMPLE_URI_EXTERNAL_RESOLVER


Direct ancestors

XM_URI_REFERENCE_RESOLVER, XM_URI_EXTERNAL_RESOLVER, UC_SHARED_STRING_EQUALITY_TESTER

Creation

Features

Invariants

indexing

description

URI resolver:handles relative URI resolution, delegates scheme specific URL resolution

library

Gobo Eiffel XML Library

copyright

Copyright (c) 2004, Eric Bezault and others

license

Eiffel Forum License v2 (see forum.txt)

date

$Date: 2005/07/13 19:49:03 $

revision

$Revision: 1.7 $

class

XM_SIMPLE_URI_EXTERNAL_RESOLVER

inherit

XM_URI_REFERENCE_RESOLVER
XM_URI_EXTERNAL_RESOLVER

create

make

-- Create uris.
-- (Useful to descendant to establish invariant.)

make_with_base (a_uri: UT_URI)

-- Create resolver with specified base URI.

require
a_uri_not_void: a_uri /= Void

feature -- Status report

is_stack_empty: BOOLEAN

-- Is URI stack empty?

-- (From XM_URI_EXTERNAL_RESOLVER)

schemes: DS_HASH_TABLE [XM_URI_RESOLVER, STRING]

-- Registered scheme resolvers.

supports_registering_schemes: BOOLEAN

-- Does Current support resgitering scheme resolvers?

-- (From XM_URI_EXTERNAL_RESOLVER)

uri: UT_URI

-- Current URI.

-- (From XM_URI_EXTERNAL_RESOLVER)

require
has_stack: not is_stack_empty
ensure
result_not_void: Result /= Void
uris: DS_STACK [UT_URI]

-- Base URI stack.
-- (A client or descendant may be entitled to put in and remove
-- intermediate values directly.)

feature -- Element change

clear_uri_stack

-- Empty the URI stack.

-- (From XM_URI_EXTERNAL_RESOLVER)

ensure
stack_empty: is_stack_empty
push_uri (a_uri: UT_URI )

-- Push a_uri onto the stack.

-- (From XM_URI_EXTERNAL_RESOLVER)

require
uri_not_void: a_uri /= Void
reset_uri_stack (a_uri: UT_URI)

-- Empty the stack then push a_uri onto the stack.

-- (From XM_URI_EXTERNAL_RESOLVER)

require
a_uri_not_void: a_uri /= Void

feature -- Setting

register_scheme (a_scheme: XM_URI_RESOLVER)

-- Register scheme.

-- (From XM_URI_EXTERNAL_RESOLVER)

require
a_scheme_not_void: a_scheme /= Void
registering_schemes_supported: supports_registering_schemes

feature -- Operation(s)

resolve (a_string_uri: STRING)

-- Resolve a URI into the context of the base URI.

-- (From XM_EXTERNAL_RESOLVER)

require
a_system_not_void: a_system /= Void
ensure
stream_open_on_success: not has_error implies last_stream.is_open_read
resolve_finish

-- Get out of current URI scope.

-- (From XM_EXTERNAL_RESOLVER)

resolve_uri (a_uri_reference: STRING)

-- Resolve a_uri_reference on behalf of an application.

-- (From XM_URI_REFERENCE_RESOLVER)

require
uri_reference_not_void: a_uri_reference /= Void

feature -- URI

resolve_absolute_uri (an_uri: UT_URI)

-- Resolve an absolute URI.

require
an_uri_not_void: an_uri /= Void

feature -- Action(s)

resolve_public (a_public: STRING; a_system: STRING)

-- Resolve a public/system identified pair to an input stream.
-- (Default implementation: resolve using system ID only.)

-- (From XM_EXTERNAL_RESOLVER)

require
a_public_not_void: a_public /= Void
a_system_not_void: a_system /= Void
ensure
stream_open_on_success: not has_error implies last_stream.is_open_read

feature -- Result

has_error: BOOLEAN

-- Did the last resolution attempt succeed?

-- (From XM_EXTERNAL_RESOLVER)

has_media_type: BOOLEAN

-- Is the media type available.

-- (From XM_RESOLVER_MEDIA_TYPE)

has_uri_reference_error: BOOLEAN

-- Did the last resolution attempt succeed?

-- (From XM_URI_REFERENCE_RESOLVER)

last_error: STRING

-- Last error message.

-- (From XM_EXTERNAL_RESOLVER)

require
has_error: has_error
ensure
not_void: Result /= Void
last_media_type: UT_MEDIA_TYPE

-- Media type, if available.

-- (From XM_RESOLVER_MEDIA_TYPE)

require
has_media_type: has_media_type
ensure
result_not_void: Result /= Void
last_stream: KI_CHARACTER_INPUT_STREAM

-- Last stream initialised from external entity.

-- (From XM_EXTERNAL_RESOLVER)

require
not_error: not has_error
ensure
not_void: Result /= Void
last_system_id: UT_URI

-- System id used to actually open last_uri_reference_stream

-- (From XM_URI_REFERENCE_RESOLVER)

require
not_error: not has_uri_reference_error
ensure
not_void: Result /= Void
last_uri_reference_error: STRING

-- Last error message.

-- (From XM_URI_REFERENCE_RESOLVER)

require
ensure
not_void: Result /= Void
last_uri_reference_stream: KI_CHARACTER_INPUT_STREAM

-- Last stream initialised from URI reference.

-- (From XM_URI_REFERENCE_RESOLVER)

require
not_error: not has_uri_reference_error
ensure
not_void: Result /= Void

invariant

uris_not_void: uris /= Void

-- From ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)

end