4Suite™ API Documentation

# ► Module Ft.Lib.Resolvers

Specialized and useful URI resolvers

    Copyright 2005 Fourthought, Inc. (USA).
    Detailed license and copyright information: http://4suite.org/COPYRIGHT
    Project home, documentation, distributions: http://4suite.org/

Classes: FacadeResolver, SchemeRegistryResolver

## Classes

class FacadeResolver(Ft.Lib.Uri.FtUriResolver)
  A type of resolver that can be used to create a facade or cache of resources by keeping a dictionary of URI to result mappings. When a URI is provided for resolution, the mapping is first checked, and a stream is constructed by wrapping the mapping value string. If no match is found in the mapping, fall back to the standard resolver logic.

      You can manipulate the mapping directly using the "cache" attribute.

  ### Methods

  __init__(self, cache=None, observer=None)
    cache - a dictionary with mapings from URI to value (as an object to be converted to a UTF-8 encoded string) observer - callable object invoked on each resolution request
    Overrides: __init__ from class FtUriResolver
  resolve(self, uri, base=None)
    Overrides: resolve from class FtUriResolver

  ### Methods inherited from class Ft.Lib.Uri.FtUriResolver

  normalize

  ### Methods inherited from class Ft.Lib.Uri.UriResolverBase

  generate
class SchemeRegistryResolver(Ft.Lib.Uri.FtUriResolver)
  A type of resolver that allows developers to register different callable objects to handle different URI schemes. The default action if there is nothing registered for the scheme will be to fall back to UriResolverBase behavior *unless* you have in the mapping a special scheme None. The callable object that is the value on that key will then be used as the default for all unknown schemes.

      The expected function signature for scheme call-backs matches
      UriResolverBase.resolve, without the instance argument:

      resolve(uri, base=None)

      Reminder: Since this does not include self, if you are registering
      a method, use the method instance (i.e. myresolver().handler
      rather than myresolver.handler)

      You can manipulate the mapping directly using the "handlers" attribute.

  ### Methods

  __init__(self, handlers=None)
    handlers - a Python dictionary with scheme names as keys (e.g. "http") and callable objects as values
    Overrides: __init__ from class FtUriResolver
  resolve(self, uri, base=None)
    Overrides: resolve from class FtUriResolver

  ### Methods inherited from class Ft.Lib.Uri.FtUriResolver

  normalize

  ### Methods inherited from class Ft.Lib.Uri.UriResolverBase

  generate