Packageorg.granite.util
Classpublic class DefaultNamespaceResolver
ImplementsINamespaceResolver

A default implementation of the INamespaceResolver interface.
Sample usage:
  var resolver:INamespaceResolver = new DefaultNamespaceResolver("path.to.defaultNamespace.*");
  resolver.resolve("MyClass"); // "path.to.defaultNamespace.MyClass"
  resolver.registerNamespace("a", "path.to.a.*");
  resolver.resolve("a:MyClass"); // "path.to.a.MyClass"



Public Properties
 PropertyDefined by
  allowOverrideDefault : Boolean
[read-only] Tells if the default namespace may be overridden (ie: if you can call resolver.registerNamespace("*", "path.to.something.*")).
DefaultNamespaceResolver
  defaultNamespaceValue : String
[read-only] The package name of the default (or empty) namespace.
DefaultNamespaceResolver
  upperPolicy : Boolean
[read-only] Tells if a string such as "MyClass.Inner" should be considered as a class name because it starts with a uppercase letter (so it is bound to the default namespace) or not (so it is considered as a fully qualified class name in the package "MyClass").
DefaultNamespaceResolver
Public Methods
 MethodDefined by
  
DefaultNamespaceResolver(defaultNamespaceValue:String = null, allowOverrideDefault:Boolean = true, upperPolicy:Boolean = true)
Constructs a new DefaultNamespaceResolver instance.
DefaultNamespaceResolver
  
getNamespaceValue(prefix:String):String
Returns the package name bound to a given prefix.
DefaultNamespaceResolver
  
registerNamespace(prefix:String, packageName:String):String
Register a namespace prefix bound to a given package name.
DefaultNamespaceResolver
  
resolve(className:String):String
Returns a fully qualified class name, resolving namespace prefix (such as ns:MyClass resolved to path.to.MyClass).
DefaultNamespaceResolver
  
unregisterNamespace(prefix:String):String
Unregister a namespace prefix.
DefaultNamespaceResolver
Property detail
allowOverrideDefaultproperty
allowOverrideDefault:Boolean  [read-only]

Tells if the default namespace may be overridden (ie: if you can call resolver.registerNamespace("*", "path.to.something.*")).

Implementation
    public function get allowOverrideDefault():Boolean
defaultNamespaceValueproperty 
defaultNamespaceValue:String  [read-only]

The package name of the default (or empty) namespace.

Implementation
    public function get defaultNamespaceValue():String
upperPolicyproperty 
upperPolicy:Boolean  [read-only]

Tells if a string such as "MyClass.Inner" should be considered as a class name because it starts with a uppercase letter (so it is bound to the default namespace) or not (so it is considered as a fully qualified class name in the package "MyClass").

Implementation
    public function get upperPolicy():Boolean
Constructor detail
DefaultNamespaceResolver()constructor
public function DefaultNamespaceResolver(defaultNamespaceValue:String = null, allowOverrideDefault:Boolean = true, upperPolicy:Boolean = true)

Constructs a new DefaultNamespaceResolver instance.

Parameters
defaultNamespaceValue:String (default = null) — see corresponding property.
 
allowOverrideDefault:Boolean (default = true) — see corresponding property.
 
upperPolicy:Boolean (default = true) — see corresponding property.
Method detail
getNamespaceValue()method
public function getNamespaceValue(prefix:String):String

Returns the package name bound to a given prefix.

Parameters
prefix:String — prefix to look for.

Returns
String — the package name bound to the prefix, or null if the prefix wasn't registered.
registerNamespace()method 
public function registerNamespace(prefix:String, packageName:String):String

Register a namespace prefix bound to a given package name. The package name must be of the form: path.to.*. You may pass null, "", "*" or ".*" for an empty package name.

Parameters
prefix:String — the prefix to be registered.
 
packageName:String — the package name bound to the prefix.

Returns
String — the previous package name bound to the prefix, or null if the prefix wasn't registered.

Throws
— if the prefix is null or if it is empty and not allowed to redefine the default namespace, or if the package name isn't of the required form.
resolve()method 
public function resolve(className:String):String

Returns a fully qualified class name, resolving namespace prefix (such as ns:MyClass resolved to path.to.MyClass).

Parameters
className:String — class name to be resolved.

Returns
String — the resolved class name.
unregisterNamespace()method 
public function unregisterNamespace(prefix:String):String

Unregister a namespace prefix.

Parameters
prefix:String — prefix to be unregistered.

Returns
String — the package name bound to the prefix, or null if the prefix wasn't registered.