Spring LDAP

org.springframework.ldap.ldif.batch
Class LdifReader

java.lang.Object
  extended by org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<LdapAttributes>
      extended by org.springframework.ldap.ldif.batch.LdifReader
All Implemented Interfaces:
org.springframework.batch.item.file.ResourceAwareItemReaderItemStream<LdapAttributes>, org.springframework.batch.item.ItemReader<LdapAttributes>, org.springframework.batch.item.ItemStream, org.springframework.batch.item.ItemStreamReader<LdapAttributes>, InitializingBean

public class LdifReader
extends org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<LdapAttributes>
implements org.springframework.batch.item.file.ResourceAwareItemReaderItemStream<LdapAttributes>, InitializingBean

The 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.

Author:
Keith Barlow

Constructor Summary
LdifReader()
           
 
Method Summary
 void afterPropertiesSet()
           
protected  void doClose()
           
protected  void doOpen()
           
protected  LdapAttributes doRead()
           
 void setRecordsToSkip(int recordsToSkip)
          Public setter for the number of lines to skip at the start of a file.
 void setResource(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.
 
Methods inherited from class org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader
close, getCurrentItemCount, jumpToItem, open, read, setCurrentItemCount, setMaxItemCount, setName, setSaveState, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.batch.item.ItemStream
close, open, update
 
Methods inherited from interface org.springframework.batch.item.ItemReader
read
 

Constructor Detail

LdifReader

public LdifReader()
Method Detail

setStrict

public 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.

Parameters:
strict - false by default

setSkippedRecordsCallback

public void setSkippedRecordsCallback(RecordCallbackHandler skippedRecordsCallback)
RecordCallbackHandler implementations can be used to take action on skipped records.

Parameters:
skippedRecordsCallback - will be called for each one of the initial skipped lines before any items are read.

setRecordsToSkip

public void setRecordsToSkip(int recordsToSkip)
Public setter for the number of lines to skip at the start of a file. Can be used if the file contains a header without useful (column name) information, and without a comment delimiter at the beginning of the lines.

Parameters:
recordsToSkip - the number of lines to skip

doClose

protected void doClose()
                throws Exception
Specified by:
doClose in class org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<LdapAttributes>
Throws:
Exception

doOpen

protected void doOpen()
               throws Exception
Specified by:
doOpen in class org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<LdapAttributes>
Throws:
Exception

doRead

protected LdapAttributes doRead()
                         throws Exception
Specified by:
doRead in class org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<LdapAttributes>
Throws:
Exception

setResource

public void setResource(Resource resource)
Specified by:
setResource in interface org.springframework.batch.item.file.ResourceAwareItemReaderItemStream<LdapAttributes>

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception

Spring LDAP