org.progeeks.meta.xml
Class XmlRenderingEngine

java.lang.Object
  extended by org.progeeks.meta.xml.XmlRenderingEngine

public class XmlRenderingEngine
extends java.lang.Object

Renders MetaObjects to XML.

Version:
$Revision: 1.28 $
Author:
Paul Speed

Field Summary
static ReferenceXmlRenderer REFERENCE_RENDERER
           
static MetaFormFlavor XML_FORM_FLAVOR
           
 
Constructor Summary
XmlRenderingEngine()
           
 
Method Summary
 java.lang.String getDefaultIndent()
          Returns the default indent string used when generating the XML output.
 FormatRegistry getFormatRegistry()
          Returns this factory engine's format registry.
 MetaFormRegistry getMetaFormRegistry()
           
 MetaKit getMetaKit()
           
 XmlPropertyRenderer getRenderer(PropertyType type, java.lang.Object value)
          Returns the renderer for the specified property type.
 RendererProxy getRendererProxy(PropertyType type, java.lang.Object value)
          Returns an object containing the specific PropertyType and the XmlPropertyRenderer for a give type and value.
 PropertyType getSpecificType(PropertyType type, java.lang.Object value)
          Returns the most specific property type possible for the specified type and value that would return a valid renderer.
 boolean hasPackages()
          Returns true if there are any imported packages associated with this engine.
 void importPackage(java.lang.String packageName)
          Adds a "package" name to the list of prefixes that will be checked when writing out tags that use the transform functionality of the rendering engine.
 void registerRenderer(java.lang.Class type, XmlPropertyRenderer renderer)
          Registers a renderer to deal with a specific base type.
 void registerRenderer(MetaClass type, XmlPropertyRenderer renderer)
          Registers a renderer to deal with a specific meta-class.
 void registerRenderer(PropertyType type, XmlPropertyRenderer renderer)
          Registers a renderer to deal with a specific property type.
 void renderXml(java.util.Collection objects, java.lang.String rootTag, java.io.Writer writer)
          Looks up the appropriate renderers and generates XML output for the specified collection of -objects.
 void renderXml(MetaObject obj, java.io.Writer writer)
          Looks up the appropriate renderers and generates XML output for the specified meta-object.
 void renderXml(java.lang.Object obj, PropertyType type, java.io.Writer writer)
          Looks up the appropriate renderers and generates XML output for the specified object using a renderer associated with the specified PropertyType.
 void renderXml(java.lang.Object obj, java.io.Writer writer)
          Renders the specified object to XML using some heuristics based on type, the current meta-kit, registered meta-classes, etc. to attempt to find the best renderer.
 void setDefaultIndent(java.lang.String s)
          Sets the default indent string used when generating the XML output.
 void setFormatRegistry(FormatRegistry formats)
          Sets the format registry that will be used to resolve formatters for types without specific renderers.
 void setMetaFormRegistry(MetaFormRegistry forms)
          Sets the form registry to use for looking up MetaForms.
 void setMetaKit(MetaKit metaKit)
          Sets the meta-kit to use when auto-resolving regular objects to meta-objects for rendering.
 java.lang.String transformClassName(java.lang.String name)
          Returns the transformed class name after chopping off any relevant package name and setting the first letter of the separated class name to a lowercase character.
protected  XmlPrintWriter wrapWriter(java.io.Writer writer)
          Wraps or casts the specified writer as appropriate to return a properly configured XmlPrintWriter.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XML_FORM_FLAVOR

public static final MetaFormFlavor XML_FORM_FLAVOR

REFERENCE_RENDERER

public static final ReferenceXmlRenderer REFERENCE_RENDERER
Constructor Detail

XmlRenderingEngine

public XmlRenderingEngine()
Method Detail

setMetaKit

public void setMetaKit(MetaKit metaKit)
Sets the meta-kit to use when auto-resolving regular objects to meta-objects for rendering. This is used by the renderXml( Object, Writer ) method to help determine which renderer to use and to automatically wrap objects that should be rendered as MetaObjects. This parameter is optional and if not specific indicates that no auto-wrapping should be done when rendering non-meta-objects.


getMetaKit

public MetaKit getMetaKit()

setDefaultIndent

public void setDefaultIndent(java.lang.String s)
Sets the default indent string used when generating the XML output.


getDefaultIndent

public java.lang.String getDefaultIndent()
Returns the default indent string used when generating the XML output.


importPackage

public void importPackage(java.lang.String packageName)
Adds a "package" name to the list of prefixes that will be checked when writing out tags that use the transform functionality of the rendering engine. When transforming a class name, the name is split on the last period. If the first part matches one of the package imports then only the name is written, thus saving space. Note: it is important for the reader to use similar packages.


hasPackages

public boolean hasPackages()
Returns true if there are any imported packages associated with this engine.


transformClassName

public java.lang.String transformClassName(java.lang.String name)
Returns the transformed class name after chopping off any relevant package name and setting the first letter of the separated class name to a lowercase character.


registerRenderer

public void registerRenderer(PropertyType type,
                             XmlPropertyRenderer renderer)
Registers a renderer to deal with a specific property type.


registerRenderer

public void registerRenderer(MetaClass type,
                             XmlPropertyRenderer renderer)
Registers a renderer to deal with a specific meta-class.


registerRenderer

public void registerRenderer(java.lang.Class type,
                             XmlPropertyRenderer renderer)
Registers a renderer to deal with a specific base type.


setFormatRegistry

public void setFormatRegistry(FormatRegistry formats)
Sets the format registry that will be used to resolve formatters for types without specific renderers.


setMetaFormRegistry

public void setMetaFormRegistry(MetaFormRegistry forms)
Sets the form registry to use for looking up MetaForms.


getMetaFormRegistry

public MetaFormRegistry getMetaFormRegistry()

getRendererProxy

public RendererProxy getRendererProxy(PropertyType type,
                                      java.lang.Object value)
Returns an object containing the specific PropertyType and the XmlPropertyRenderer for a give type and value.


getSpecificType

public PropertyType getSpecificType(PropertyType type,
                                    java.lang.Object value)
Returns the most specific property type possible for the specified type and value that would return a valid renderer.


getRenderer

public XmlPropertyRenderer getRenderer(PropertyType type,
                                       java.lang.Object value)
Returns the renderer for the specified property type.


getFormatRegistry

public FormatRegistry getFormatRegistry()
Returns this factory engine's format registry.


wrapWriter

protected XmlPrintWriter wrapWriter(java.io.Writer writer)
Wraps or casts the specified writer as appropriate to return a properly configured XmlPrintWriter.


renderXml

public void renderXml(MetaObject obj,
                      java.io.Writer writer)
Looks up the appropriate renderers and generates XML output for the specified meta-object.


renderXml

public void renderXml(java.lang.Object obj,
                      PropertyType type,
                      java.io.Writer writer)
Looks up the appropriate renderers and generates XML output for the specified object using a renderer associated with the specified PropertyType.


renderXml

public void renderXml(java.lang.Object obj,
                      java.io.Writer writer)
Renders the specified object to XML using some heuristics based on type, the current meta-kit, registered meta-classes, etc. to attempt to find the best renderer. First this method uses the configured meta-kit to attempt to resolve the object to an appropriate MetaClass. If this is successful then the object will be wrapped and rendered as such. Otherwise, the class of the object is used in a ClassPropertyType to look up an appropriate renderer. It is important to note that more specific PropertyTypes will therefore not come into play.


renderXml

public void renderXml(java.util.Collection objects,
                      java.lang.String rootTag,
                      java.io.Writer writer)
Looks up the appropriate renderers and generates XML output for the specified collection of -objects. The rootTag will be used to generate the root-level tag surrounding the list of objects.



Copyright © 2002-2003 Paul Speed. All Rights Reserved.