org.jumpmind.symmetric.ext
Class TemplatedPublisherFilter

java.lang.Object
  extended by org.jumpmind.symmetric.ext.AbstractTextPublisherFilter
      extended by org.jumpmind.symmetric.ext.TemplatedPublisherFilter
All Implemented Interfaces:
IExtensionPoint, INodeGroupExtensionPoint, IPublisherFilter, IBatchListener, IDataLoaderFilter, org.springframework.beans.factory.BeanNameAware

public class TemplatedPublisherFilter
extends AbstractTextPublisherFilter

A convenience class that allows the end user to template a message using SymmetricDS filter data.

You may use %COLUMN% formatted tokens in your template data which will be replaced by data coming in through the filter. The following tokens are also supported:
  1. %DMLTYPE% - evaluates to INSERT, UPDATE or DELETE
  2. %TIMESTAMP% - evaluates to ms value returned by System.currentTimeInMillis()

If you have special formatting needs, implement the TemplatedPublisherFilter.IFormat interface and map your formatter to the column you want to 'massage.'


Nested Class Summary
static interface TemplatedPublisherFilter.IFormat
           
 
Field Summary
 
Fields inherited from class org.jumpmind.symmetric.ext.AbstractTextPublisherFilter
publisher, tableName
 
Constructor Summary
TemplatedPublisherFilter()
           
 
Method Summary
protected  java.lang.String addTextElementForDelete(IDataLoaderContext ctx, java.lang.String[] keys)
           
protected  java.lang.String addTextElementForInsert(IDataLoaderContext ctx, java.lang.String[] data)
           
protected  java.lang.String addTextElementForUpdate(IDataLoaderContext ctx, java.lang.String[] data, java.lang.String[] keys)
           
protected  java.lang.String addTextFooter(IDataLoaderContext ctx)
           
protected  java.lang.String addTextHeader(IDataLoaderContext ctx)
           
protected  java.lang.String fillOutTemplate(StatementBuilder.DmlType dmlType, java.lang.String template, IDataLoaderContext ctx, java.lang.String[] data, java.lang.String[] keys)
           
protected  java.lang.String format(java.lang.String col, java.lang.String data)
           
protected  java.lang.String replace(java.lang.String template, java.lang.String token, java.lang.String value)
           
 void setColumnNameToDataFormatter(java.util.Map<java.lang.String,TemplatedPublisherFilter.IFormat> columnNameToDataFormatter)
           
 void setContentTableTemplate(java.lang.String contentTableTemplate)
           
 void setDataFilter(IDataLoaderFilter dataFilter)
           
 void setFooterTableTemplate(java.lang.String footerTableTemplate)
           
 void setHeaderTableTemplate(java.lang.String headerTableTemplate)
           
 void setProcessDelete(boolean processDeletes)
           
 void setProcessInsert(boolean processInserts)
           
 void setProcessUpdate(boolean processUpdates)
           
 
Methods inherited from class org.jumpmind.symmetric.ext.AbstractTextPublisherFilter
batchComplete, doesTextExistToPublish, filterDelete, filterInsert, filterUpdate, getFromCache, getNodeGroupIdsToApplyTo, isAutoRegister, logCount, setAutoRegister, setBeanName, setLoadDataInTargetDatabase, setMessagesSinceLastLogOutput, setMinTimeInMsBetweenLogOutput, setNodeGroupIdToApplyTo, setPublisher, setTableName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TemplatedPublisherFilter

public TemplatedPublisherFilter()
Method Detail

addTextElementForDelete

protected java.lang.String addTextElementForDelete(IDataLoaderContext ctx,
                                                   java.lang.String[] keys)
Specified by:
addTextElementForDelete in class AbstractTextPublisherFilter

addTextElementForInsert

protected java.lang.String addTextElementForInsert(IDataLoaderContext ctx,
                                                   java.lang.String[] data)
Specified by:
addTextElementForInsert in class AbstractTextPublisherFilter

addTextElementForUpdate

protected java.lang.String addTextElementForUpdate(IDataLoaderContext ctx,
                                                   java.lang.String[] data,
                                                   java.lang.String[] keys)
Specified by:
addTextElementForUpdate in class AbstractTextPublisherFilter

addTextFooter

protected java.lang.String addTextFooter(IDataLoaderContext ctx)
Specified by:
addTextFooter in class AbstractTextPublisherFilter

addTextHeader

protected java.lang.String addTextHeader(IDataLoaderContext ctx)
Specified by:
addTextHeader in class AbstractTextPublisherFilter

fillOutTemplate

protected java.lang.String fillOutTemplate(StatementBuilder.DmlType dmlType,
                                           java.lang.String template,
                                           IDataLoaderContext ctx,
                                           java.lang.String[] data,
                                           java.lang.String[] keys)

format

protected java.lang.String format(java.lang.String col,
                                  java.lang.String data)

replace

protected java.lang.String replace(java.lang.String template,
                                   java.lang.String token,
                                   java.lang.String value)

setColumnNameToDataFormatter

public void setColumnNameToDataFormatter(java.util.Map<java.lang.String,TemplatedPublisherFilter.IFormat> columnNameToDataFormatter)

setProcessDelete

public void setProcessDelete(boolean processDeletes)

setProcessInsert

public void setProcessInsert(boolean processInserts)

setProcessUpdate

public void setProcessUpdate(boolean processUpdates)

setHeaderTableTemplate

public void setHeaderTableTemplate(java.lang.String headerTableTemplate)

setFooterTableTemplate

public void setFooterTableTemplate(java.lang.String footerTableTemplate)

setContentTableTemplate

public void setContentTableTemplate(java.lang.String contentTableTemplate)

setDataFilter

public void setDataFilter(IDataLoaderFilter dataFilter)


Copyright © 2007-2008. All Rights Reserved.