Class MappingLdifReader<T>
- java.lang.Object
- org.springframework.batch.item.ItemStreamSupport
- org.springframework.batch.item.support.AbstractItemStreamItemReader<T>
- org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader<T>
- org.springframework.batch.item.ldif.MappingLdifReader<T>
- All Implemented Interfaces:
ResourceAwareItemReaderItemStream<T>,ItemReader<T>,ItemStream,ItemStreamReader<T>,org.springframework.beans.factory.InitializingBean
public class MappingLdifReader<T> extends AbstractItemCountingItemStreamItemReader<T> implements ResourceAwareItemReaderItemStream<T>, org.springframework.beans.factory.InitializingBean
TheMappingLdifReaderis an adaptation of theFlatFileItemReaderbuilt around anLdifParser. It differs from the standardLdifReaderin its ability to mapLdapAttributesobjects to POJOs.The
MappingLdifReaderrequires anRecordMapperimplementation. If mapping is not required, theLdifReadershould be used instead. It simply returns anLdapAttributesobject which can be consumed and manipulated as necessary byItemProcessoror any output service.As with the
FlatFileItemReader, thestrictoption 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
Constructors Constructor Description MappingLdifReader()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()protected voiddoClose()Close the resources opened inAbstractItemCountingItemStreamItemReader.doOpen().protected voiddoOpen()Open resources necessary to start reading input.protected TdoRead()Read next item from input.voidsetRecordMapper(RecordMapper<T> recordMapper)Setter for object mapper.voidsetRecordsToSkip(int recordsToSkip)Public setter for the number of lines to skip at the start of a file.voidsetResource(org.springframework.core.io.Resource resource)voidsetSkippedRecordsCallback(RecordCallbackHandler skippedRecordsCallback)RecordCallbackHandlerimplementations can be used to take action on skipped records.voidsetStrict(boolean strict)In strict mode the reader will throw an exception onAbstractItemCountingItemStreamItemReader.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, isSaveState, jumpToItem, open, read, setCurrentItemCount, setMaxItemCount, setSaveState, update
Methods inherited from class org.springframework.batch.item.ItemStreamSupport
getExecutionContextKey, setExecutionContextName, setName
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.ItemReader
read
Methods inherited from interface org.springframework.batch.item.ItemStream
close, open, update
Method Detail
setStrict
public void setStrict(boolean strict)
In strict mode the reader will throw an exception onAbstractItemCountingItemStreamItemReader.open(org.springframework.batch.item.ExecutionContext)if the input resource does not exist.- Parameters:
strict- false by default
setSkippedRecordsCallback
public void setSkippedRecordsCallback(RecordCallbackHandler skippedRecordsCallback)
RecordCallbackHandlerimplementations 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
setRecordMapper
public void setRecordMapper(RecordMapper<T> recordMapper)
Setter for object mapper. This property is required to be set.- Parameters:
recordMapper- maps record to an object
doClose
protected void doClose() throws java.lang.ExceptionDescription copied from class:AbstractItemCountingItemStreamItemReaderClose the resources opened inAbstractItemCountingItemStreamItemReader.doOpen().- Specified by:
doClosein classAbstractItemCountingItemStreamItemReader<T>- Throws:
java.lang.Exception- Allows subclasses to throw checked exceptions for interpretation by the framework
doOpen
protected void doOpen() throws java.lang.ExceptionDescription copied from class:AbstractItemCountingItemStreamItemReaderOpen resources necessary to start reading input.- Specified by:
doOpenin classAbstractItemCountingItemStreamItemReader<T>- Throws:
java.lang.Exception- Allows subclasses to throw checked exceptions for interpretation by the framework
doRead
protected T doRead() throws java.lang.Exception
Description copied from class:AbstractItemCountingItemStreamItemReaderRead next item from input.- Specified by:
doReadin classAbstractItemCountingItemStreamItemReader<T>- Returns:
- an item or
nullif the data source is exhausted - Throws:
java.lang.Exception- Allows subclasses to throw checked exceptions for interpretation by the framework
setResource
public void setResource(org.springframework.core.io.Resource resource)
- Specified by:
setResourcein interfaceResourceAwareItemReaderItemStream<T>
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.Exception- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
java.lang.Exception