Class ResultSetTranslatorImp
- java.lang.Object
-
- com.adaptris.core.services.jdbc.ResultSetTranslatorBase
-
- com.adaptris.core.services.jdbc.StyledResultTranslatorImp
-
- com.adaptris.core.services.jdbc.ResultSetTranslatorImp
-
- All Implemented Interfaces:
ComponentLifecycle
,ComponentLifecycleExtension
,ResultSetTranslator
- Direct Known Subclasses:
MetadataResultSetTranslatorImpl
,XmlPayloadTranslatorImpl
public abstract class ResultSetTranslatorImp extends StyledResultTranslatorImp
Base implementation for converting a ResultSet into an AdaptrisMessage.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.adaptris.core.services.jdbc.StyledResultTranslatorImp
StyledResultTranslatorImp.ColumnStyle
-
-
Field Summary
-
Fields inherited from class com.adaptris.core.services.jdbc.ResultSetTranslatorBase
log
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ResultSetTranslatorImp()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addColumnTranslator(ColumnTranslator ct)
java.lang.Boolean
getAttemptAutoConvert()
java.util.List<ColumnTranslator>
getColumnTranslators()
java.lang.Boolean
getDisplayColumnErrors()
java.lang.String
getResultCountMetadataItem()
java.lang.String
getUpdateCountMetadataItem()
protected boolean
isDisplayColumnErrors()
protected void
logColumnErrors(int column, java.lang.Exception e)
void
setAttemptAutoConvert(java.lang.Boolean b)
Whether or not to attempt conversion with aColumnTranslator
rather than using a simpletoString()
.void
setColumnTranslators(java.util.List<ColumnTranslator> list)
Set the list of column translators that will be used and applied against each column in the result set.void
setDisplayColumnErrors(java.lang.Boolean b)
Sets whether to log any errors encountered when retrieving fields from the database.void
setResultCountMetadataItem(java.lang.String s)
Add the number of resultsets to metadata.void
setUpdateCountMetadataItem(java.lang.String s)
Add the number of result sets updated to metadata.protected java.lang.String
toString(JdbcResultRow rs, int column)
void
translate(JdbcResult source, AdaptrisMessage target)
Translate the contents of the result set into the AdaptrisMessage object.abstract long
translateResult(JdbcResult source, AdaptrisMessage target)
Translate the result returning the number of rows translated.protected void
updateMetadata(AdaptrisMessage message, long numResults, java.lang.String metadataItemName)
protected void
updateMetadataQueryCount(AdaptrisMessage message, long numResults)
protected void
updateMetadataUpdateCount(AdaptrisMessage message, JdbcResult jdbcResult)
<T extends ResultSetTranslatorImp>
TwithAttemptAutoConvert(java.lang.Boolean b)
<T extends ResultSetTranslatorImp>
TwithColumnTranslators(ColumnTranslator... columnTranslators)
<T extends ResultSetTranslatorImp>
TwithColumnTranslators(java.util.List<ColumnTranslator> translators)
-
Methods inherited from class com.adaptris.core.services.jdbc.StyledResultTranslatorImp
getColumnNameStyle, setColumnNameStyle, withColumnNameStyle
-
Methods inherited from class com.adaptris.core.services.jdbc.ResultSetTranslatorBase
prepare
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.adaptris.core.ComponentLifecycle
close, init, start, stop
-
-
-
-
Method Detail
-
translate
public final void translate(JdbcResult source, AdaptrisMessage target) throws java.sql.SQLException, ServiceException
Description copied from interface:ResultSetTranslator
Translate the contents of the result set into the AdaptrisMessage object. Only use this method for JdbcResults that are guaranteed to fit in memory.- Parameters:
source
- the result set from a database query executed byJdbcDataQueryService
target
- the adaptris message- Throws:
java.sql.SQLException
- on errors accessing the result set.ServiceException
- wrapping any other exception
-
translateResult
public abstract long translateResult(JdbcResult source, AdaptrisMessage target) throws java.sql.SQLException, ServiceException
Translate the result returning the number of rows translated.- Throws:
java.sql.SQLException
ServiceException
-
toString
protected java.lang.String toString(JdbcResultRow rs, int column)
-
logColumnErrors
protected void logColumnErrors(int column, java.lang.Exception e)
-
updateMetadataQueryCount
protected void updateMetadataQueryCount(AdaptrisMessage message, long numResults)
-
updateMetadataUpdateCount
protected void updateMetadataUpdateCount(AdaptrisMessage message, JdbcResult jdbcResult)
-
updateMetadata
protected void updateMetadata(AdaptrisMessage message, long numResults, java.lang.String metadataItemName)
-
getDisplayColumnErrors
public java.lang.Boolean getDisplayColumnErrors()
- Returns:
- whether to log errors caused by problem data
-
setDisplayColumnErrors
public void setDisplayColumnErrors(java.lang.Boolean b)
Sets whether to log any errors encountered when retrieving fields from the database.As an example, some databases use "0000-00-00" instead of a null date. This will cause an exception when attempting to retrieve the date using JDBC. We ignore the exception and simply produce an empty element; setting this flag causes the exception to be logged (handy during testing)
- Parameters:
b
-
-
isDisplayColumnErrors
protected boolean isDisplayColumnErrors()
-
getColumnTranslators
public java.util.List<ColumnTranslator> getColumnTranslators()
-
withColumnTranslators
public <T extends ResultSetTranslatorImp> T withColumnTranslators(ColumnTranslator... columnTranslators)
-
withColumnTranslators
public <T extends ResultSetTranslatorImp> T withColumnTranslators(java.util.List<ColumnTranslator> translators)
-
setColumnTranslators
public void setColumnTranslators(java.util.List<ColumnTranslator> list)
Set the list of column translators that will be used and applied against each column in the result set.If this list is not empty then each translator in the list will be used to translate the corresponding column in the result set. If the list is empty then each column in the result set will be treated as either a byte[] or String column which may lead to undefined behaviour in the event of columns being CLOB / NCLOB / BLOB types.
- Parameters:
list
- default is empty.
-
addColumnTranslator
public void addColumnTranslator(ColumnTranslator ct)
-
getResultCountMetadataItem
public java.lang.String getResultCountMetadataItem()
-
setResultCountMetadataItem
public void setResultCountMetadataItem(java.lang.String s)
Add the number of resultsets to metadata.- Parameters:
s
- the metadata to add the value against; default is null (no output)
-
getUpdateCountMetadataItem
public java.lang.String getUpdateCountMetadataItem()
-
setUpdateCountMetadataItem
public void setUpdateCountMetadataItem(java.lang.String s)
Add the number of result sets updated to metadata.- Parameters:
s
- the metadata to add the value against; default is null (no output)
-
getAttemptAutoConvert
public java.lang.Boolean getAttemptAutoConvert()
-
setAttemptAutoConvert
public void setAttemptAutoConvert(java.lang.Boolean b)
Whether or not to attempt conversion with aColumnTranslator
rather than using a simpletoString()
.Note that output may differ depending on defaults within the column translators. For instance
java.sql.Timestamp#toString()
differs from the default format inTimestampColumnTranslator
.- Parameters:
b
- true to attempt conversion, default is false if not specified.
-
withAttemptAutoConvert
public <T extends ResultSetTranslatorImp> T withAttemptAutoConvert(java.lang.Boolean b)
-
-