public class LdifReader extends AbstractItemCountingItemStreamItemReader<org.springframework.ldap.core.LdapAttributes> implements ResourceAwareItemReaderItemStream<org.springframework.ldap.core.LdapAttributes>, org.springframework.beans.factory.InitializingBean
LdifReader is an adaptation of the FlatFileItemReader
built around an LdifParser.
Unlike the FlatFileItemReader, the LdifReader
does not require a mapper. Instead, this version of the LdifReader simply returns an LdapAttributes
object which can be consumed and manipulated as necessary by ItemProcessor or any
output service. Alternatively, the RecordMapper interface can be implemented and set in a
MappingLdifReader to map records to objects for return.
LdifReader usage is mimics that of the FlatFileItemReader
for all intensive purposes. Adjustments have been made to process records instead of lines, however. As such, the
recordsToSkip attribute indicates the number of records from the top of the file that should not be processed.
Implementations of the RecordCallbackHandler interface can be used to execute operations on those skipped records.
As with the FlatFileItemReader, the strict option differentiates
between whether or not to require the resource to exist before processing. In the case of a value set to false, a warning is logged instead of
an exception being thrown.
| Constructor and Description |
|---|
LdifReader() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
protected void |
doClose()
Close the resources opened in
AbstractItemCountingItemStreamItemReader.doOpen(). |
protected void |
doOpen()
Open resources necessary to start reading input.
|
protected org.springframework.ldap.core.LdapAttributes |
doRead()
Read next item from input.
|
void |
setRecordsToSkip(int recordsToSkip)
Public setter for the number of lines to skip at the start of a file.
|
void |
setResource(org.springframework.core.io.Resource resource) |
void |
setSkippedRecordsCallback(RecordCallbackHandler skippedRecordsCallback)
RecordCallbackHandler implementations can be used to take action on skipped records. |
void |
setStrict(boolean strict)
In strict mode the reader will throw an exception on
AbstractItemCountingItemStreamItemReader.open(org.springframework.batch.item.ExecutionContext) if the
input resource does not exist. |
close, getCurrentItemCount, isSaveState, jumpToItem, open, read, setCurrentItemCount, setMaxItemCount, setSaveState, updategetExecutionContextKey, setExecutionContextName, setNameclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclose, open, updatereadpublic void setStrict(boolean strict)
AbstractItemCountingItemStreamItemReader.open(org.springframework.batch.item.ExecutionContext) if the
input resource does not exist.strict - false by defaultpublic void setSkippedRecordsCallback(RecordCallbackHandler skippedRecordsCallback)
RecordCallbackHandler implementations can be used to take action on skipped records.skippedRecordsCallback - will be called for each one of the initial
skipped lines before any items are read.public void setRecordsToSkip(int recordsToSkip)
recordsToSkip - the number of lines to skipprotected void doClose()
throws java.lang.Exception
AbstractItemCountingItemStreamItemReaderAbstractItemCountingItemStreamItemReader.doOpen().doClose in class AbstractItemCountingItemStreamItemReader<org.springframework.ldap.core.LdapAttributes>java.lang.Exceptionprotected void doOpen()
throws java.lang.Exception
AbstractItemCountingItemStreamItemReaderdoOpen in class AbstractItemCountingItemStreamItemReader<org.springframework.ldap.core.LdapAttributes>java.lang.Exceptionprotected org.springframework.ldap.core.LdapAttributes doRead()
throws java.lang.Exception
AbstractItemCountingItemStreamItemReaderdoRead in class AbstractItemCountingItemStreamItemReader<org.springframework.ldap.core.LdapAttributes>java.lang.Exceptionpublic void setResource(org.springframework.core.io.Resource resource)
setResource in interface ResourceAwareItemReaderItemStream<org.springframework.ldap.core.LdapAttributes>public void afterPropertiesSet()
throws java.lang.Exception
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanjava.lang.Exception