org.nuiton.guix.tags
Class TagManager

java.lang.Object
  extended by org.nuiton.guix.tags.TagManager

public class TagManager
extends java.lang.Object

Manages tags of the .guix files.


Field Summary
static java.lang.String GUIX_NAMESPACE
          Namespace for Guix's non-class tags, such as <Button;>.
protected static java.util.Map<java.lang.String,java.lang.Class> guixClassHandlers
          List of the Guix classes such as <Button;>
protected static org.apache.commons.logging.Log log
          log
 
Method Summary
static TagHandler getGuixClassHandler(java.lang.String className)
          Get the tagHandler registered for a particular tag
static void registerDefaultNamespace(java.lang.String tag, java.lang.String namespace)
          Sets the default namespace for a tag.
static void registerGuixClassHandler(java.lang.String className, java.lang.Class clazz)
          Register a TagHandler for a particular tag
static java.lang.String resolveClassName(java.lang.String name)
          Resolves a simple class name (like Object or String) to its fully-qualified name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GUIX_NAMESPACE

public static final java.lang.String GUIX_NAMESPACE
Namespace for Guix's non-class tags, such as <Button;>. The namespace normally does not need to be specified but can be used to resolve ambiguities.

See Also:
Constant Field Values

log

protected static final org.apache.commons.logging.Log log
log


guixClassHandlers

protected static java.util.Map<java.lang.String,java.lang.Class> guixClassHandlers
List of the Guix classes such as <Button;>

Method Detail

registerDefaultNamespace

public static void registerDefaultNamespace(java.lang.String tag,
                                            java.lang.String namespace)
Sets the default namespace for a tag. When the tag is encountered with no namespace specified, the specified namespace will be assumed. Mapping the same tag to two or more default namespaces removes the mapping and marks the entry as being ambiguous (by putting a null value into the map); this causes an error to be thrown if the tag is used without a namespace being specified.

Java package names on tags are automatically converted into namespaces (e.g. <javax.swing.JButton/> and <JButton xmlns="javax.swing.*"/> are equivalent), so tags with package names are considered to have namespaces specified.

Parameters:
tag - tag name
namespace - namespace

registerGuixClassHandler

public static void registerGuixClassHandler(java.lang.String className,
                                            java.lang.Class clazz)
Register a TagHandler for a particular tag

Parameters:
className - the tag or className to catch
clazz - the tagHandler class who handles clazz

getGuixClassHandler

public static TagHandler getGuixClassHandler(java.lang.String className)
Get the tagHandler registered for a particular tag

Parameters:
className - the class name or tag you'd like to get the TagHandler
Returns:
a TagHandler instance which handles the className class or tag

resolveClassName

public static java.lang.String resolveClassName(java.lang.String name)
Resolves a simple class name (like Object or String) to its fully-qualified name. Inner classes should be represented as they would appear in Java source code (e.g. JPopupMenu.Separator). Fully-qualified names, such as java.lang.Object are legal and will be returned unmodified (and in fact it is generally impossible to even know whether a given reference is fully qualified until it has been resolved). Returns null if no matching class could be found.

Parameters:
name - name to resolve
Returns:
the resolved fqn class name


Copyright © 2009 CodeLutin. All Rights Reserved.