﻿B4J=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=9.8
@EndOfDesignText@
Sub Class_Globals
	Private velocity As JavaObject
	Private Context As JavaObject
	Private template As JavaObject
	Private stringWriter As JavaObject
	Private Content As String
End Sub

'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
	velocity.InitializeStatic("org.apache.velocity.app.Velocity")
	velocity.RunMethod("init", Null)
	Context.InitializeNewInstance("org.apache.velocity.VelocityContext", Null)
	template.InitializeNewInstance("org.apache.velocity.Template", Null)
	stringWriter.InitializeNewInstance("java.io.StringWriter", Null)
End Sub
 
public Sub putContext(key As Object,value As Object)	
	Context.RunMethod("put", Array(key, value))
End Sub

public Sub putContextAsMap(m As Map)
	For a=0 To m.Size-1
		Context.RunMethod("put",Array(m.GetKeyAt(a), m.GetValueAt(a))) 
	Next
End Sub

public Sub retrieveContext(key As String) As Object
	Return Context.RunMethod("get",Array(key))
End Sub

public Sub putTemplate(t As String)
	template = velocity.RunMethod("getTemplate", Array(t))
End Sub

public Sub runTemplate() 
	template.RunMethodJO("merge", Array( Context, stringWriter ) )
End Sub

public Sub retrieveContent() As Object 
	Content  = stringWriter.RunMethod("toString", Null)
	stringWriter.RunMethod("close", Null)
	Return Content
End Sub	