com.hammurapi.render
Class RenderHelper

java.lang.Object
  extended by com.hammurapi.render.RenderHelper
All Implemented Interfaces:
RenderingConstants

public class RenderHelper
extends java.lang.Object
implements RenderingConstants

Helper class for ReportGenerator and Jxp renderers. It is available in Jxp templates in ReportGenerator as renderHelper variable.

Author:
Pavel Vlasov

Field Summary
 
Fields inherited from interface com.hammurapi.render.RenderingConstants
CONTENTS, CONTENTS_HTTP, GIF, IMAGES, OUTLINE, OUTLINE_HTTP, RENDER_HELPER, RENDER_START, TO_RENDER
 
Constructor Summary
RenderHelper(IdentityManager<?> identityManager, java.io.File outputDir, java.util.Map<java.lang.String,java.lang.Object> env, Context context, java.util.Locale locale, boolean http)
          Constructor.
 
Method Summary
 java.lang.Object convert(java.lang.Object source, java.lang.String targetType)
          JXP has issues with class loading.
 java.lang.Object createObject(java.lang.String className, java.lang.ClassLoader classLoader, java.lang.Object... args)
          Creates object.
 java.lang.String escapeHtml(java.lang.String txt)
           
 java.lang.Object getAttribute(java.lang.Object target, java.lang.String name)
           
 java.lang.Object getAttribute(java.lang.Object target, java.lang.String name, java.lang.String defaultValue)
           
 java.lang.Object getId(java.lang.Object element)
           
 IdentityManager<?> getIdentityManager()
           
 java.lang.String getImageName(java.lang.Object obj)
          Finds image file for a given object in classloader, writes it to the "images" directory in the output directory, if it doesn't already exist.
 java.io.File getOutputDir()
           
 boolean isBlank(java.lang.String str)
           
 java.lang.String null2blank(java.lang.String str)
           
 java.lang.Object removeAttribute(java.lang.Object target, java.lang.String name)
           
 java.lang.String render(java.lang.Object obj, java.lang.String profile)
          Tries to render object "inline" (using WriterRenderer).
 java.lang.String renderAndLink(java.lang.Object obj)
          Renders details and contents without rendering outline.
 void renderDetailsAndContents(java.lang.Object obj)
          Renders details and contents without rendering outline.
 void renderOutline(java.lang.Object obj, java.io.Writer writer)
          Renders outline for the current object to a writer.
 void renderOutline(java.lang.Object obj, java.io.Writer writer, boolean http)
          Renders outline for the current object to a writer.
 java.lang.Object replaceAttribute(java.lang.Object target, java.lang.String name, java.lang.Object value)
          Replaces object attribute value only if it is present.
 java.lang.Object setAttribute(java.lang.Object target, java.lang.String name, java.lang.Object value)
          Sets object attribute.
 java.lang.Object setAttributeIfAbsent(java.lang.Object target, java.lang.String name, java.lang.Object value)
          Sets object attribute if it was not present.
 java.lang.String wikiLink(java.lang.String wikiLink)
          Renders Wiki style link url[|name] as HTML link.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RenderHelper

public RenderHelper(IdentityManager<?> identityManager,
                    java.io.File outputDir,
                    java.util.Map<java.lang.String,java.lang.Object> env,
                    Context context,
                    java.util.Locale locale,
                    boolean http)
Constructor.

Parameters:
identityManager - Identity manager.
outputDir - Output directory.
env - Environment.
context - Context.
locale - Locale.
Method Detail

getOutputDir

public java.io.File getOutputDir()
Returns:
Output directory.

getIdentityManager

public IdentityManager<?> getIdentityManager()
Returns:
Identity manager.

getImageName

public java.lang.String getImageName(java.lang.Object obj)
                              throws java.lang.Exception
Finds image file for a given object in classloader, writes it to the "images" directory in the output directory, if it doesn't already exist. Image file is sought in the same way as pages - by traversing the class hierarchy and looking for resource with class name and .gif extension.

Parameters:
obj -
Returns:
File name.
Throws:
java.lang.Exception

getId

public java.lang.Object getId(java.lang.Object element)
Parameters:
element -
Returns:
Object ID.

renderOutline

public void renderOutline(java.lang.Object obj,
                          java.io.Writer writer)
                   throws RenderingException
Renders outline for the current object to a writer.

Parameters:
obj - Source object.
writer - Output writer.
Throws:
RenderingException

renderOutline

public void renderOutline(java.lang.Object obj,
                          java.io.Writer writer,
                          boolean http)
                   throws RenderingException
Renders outline for the current object to a writer.

Parameters:
obj - Source object.
writer - Output writer.
http - If true outline shall be rendered with use of AJAX, which is useful for large trees.
Throws:
RenderingException

renderDetailsAndContents

public void renderDetailsAndContents(java.lang.Object obj)
                              throws RenderingException
Renders details and contents without rendering outline. This method can be used for model elements not appearing in the outline, but referenced by objects appearing in the outline.

Parameters:
obj - Source object.
http - If true outline shall be rendered with use of AJAX, which is useful for large trees.
Throws:
RenderingException

renderAndLink

public java.lang.String renderAndLink(java.lang.Object obj)
                               throws RenderingException
Renders details and contents without rendering outline. Returns link to the file and possibly anchor within the file. This method can be used for model elements not appearing in the outline, but referenced by objects appearing in the outline.

Parameters:
obj - Source object.
http - If true outline shall be rendered with use of AJAX, which is useful for large trees.
Throws:
RenderingException

render

public java.lang.String render(java.lang.Object obj,
                               java.lang.String profile)
                        throws RenderingException
Tries to render object "inline" (using WriterRenderer). If object cannot be converted to WriterRenderer, it gets converted to FileRenderer and a link is rendered.

Parameters:
obj - Source object.
Throws:
RenderingException

isBlank

public boolean isBlank(java.lang.String str)

null2blank

public java.lang.String null2blank(java.lang.String str)

escapeHtml

public java.lang.String escapeHtml(java.lang.String txt)

createObject

public java.lang.Object createObject(java.lang.String className,
                                     java.lang.ClassLoader classLoader,
                                     java.lang.Object... args)
                              throws java.lang.Exception
Creates object. This method is a workaround for JXP classloader issues.

Parameters:
className -
classLoader -
args -
Returns:
Throws:
java.lang.ClassNotFoundException
java.lang.SecurityException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.Exception

convert

public java.lang.Object convert(java.lang.Object source,
                                java.lang.String targetType)
                         throws java.lang.ClassNotFoundException
JXP has issues with class loading. This method is a workaround.

Parameters:
source - Source object.
className - Target class.
Returns:
Throws:
java.lang.ClassNotFoundException

setAttribute

public java.lang.Object setAttribute(java.lang.Object target,
                                     java.lang.String name,
                                     java.lang.Object value)
Sets object attribute.

Parameters:
target - Target object.
name -
value -
Returns:
previous attribute value.

setAttributeIfAbsent

public java.lang.Object setAttributeIfAbsent(java.lang.Object target,
                                             java.lang.String name,
                                             java.lang.Object value)
Sets object attribute if it was not present.

Parameters:
target - Target object.
name -
value -

replaceAttribute

public java.lang.Object replaceAttribute(java.lang.Object target,
                                         java.lang.String name,
                                         java.lang.Object value)
Replaces object attribute value only if it is present.

Parameters:
target - Target object.
name -
value -

removeAttribute

public java.lang.Object removeAttribute(java.lang.Object target,
                                        java.lang.String name)

getAttribute

public java.lang.Object getAttribute(java.lang.Object target,
                                     java.lang.String name)

getAttribute

public java.lang.Object getAttribute(java.lang.Object target,
                                     java.lang.String name,
                                     java.lang.String defaultValue)

wikiLink

public java.lang.String wikiLink(java.lang.String wikiLink)
Renders Wiki style link url[|name] as HTML link.

Parameters:
wikiLink -
Returns: