/**
* Convert a List of LuceneWork into a byte[]
*/
@Override
public byte[] toSerializedModel(List<LuceneWork> works) {
Serializer serializer = provider.getSerializer();
serializer.luceneWorks( works );
for (LuceneWork work : works) {
if (work instanceof OptimizeLuceneWork) {
serializer.addOptimizeAll();
}
else if (work instanceof PurgeAllLuceneWork) {
serializer.addPurgeAll( work.getEntityClass().getName() );
}
else if (work instanceof DeleteLuceneWork) {
serializer.addDelete( work.getEntityClass().getName(), toByteArray( work.getId() ) );
}
else if (work instanceof AddLuceneWork ) {
buildDocument( work.getDocument(), serializer );
serializer.addAdd( work.getEntityClass().getName(), toByteArray( work.getId() ), work.getFieldToAnalyzerMap() );
}
else if (work instanceof UpdateLuceneWork ) {
buildDocument( work.getDocument(), serializer );
serializer.addUpdate( work.getEntityClass().getName(), toByteArray( work.getId() ), work.getFieldToAnalyzerMap() );
}
}
return serializer.serialize();
}