public abstract class EventLogLoader
extends java.lang.Object
implements java.util.Iterator<ome.model.meta.EventLog>, java.lang.Iterable<ome.model.meta.EventLog>, org.springframework.context.ApplicationListener
FullTextIndexer
which provides an
Iterator
interface for EventLog
instances to be properly
indexed. Also supports the concept of batches. After batchSize
queries,Modifier and Type | Field and Description |
---|---|
protected int |
batchSize |
static int |
DEFAULT_BATCH_SIZE
Currently 100.
|
protected java.util.List<java.lang.String> |
excludes
Array of class types which will get excluded from indexing.
|
protected org.slf4j.Logger |
log |
protected java.lang.String |
query
Query string to be kept in sync with
excludes . |
protected ome.api.IQuery |
queryService |
Constructor and Description |
---|
EventLogLoader() |
Modifier and Type | Method and Description |
---|---|
boolean |
addEventLog(java.lang.Class<? extends ome.model.IObject> cls,
long id)
Adds an
EventLog for the given Class and id to the
backlog. |
int |
getBatchSize() |
boolean |
hasNext()
Tests for available objects.
|
boolean |
isStopSet()
Returns true if the stop flag has been set on this instance.
|
java.util.Iterator<ome.model.meta.EventLog> |
iterator() |
ome.model.meta.EventLog |
lastEventLog() |
abstract long |
more()
Should return an estimate of how many more
EventLog instances are
available for processing. |
ome.model.meta.EventLog |
next()
|
ome.model.meta.EventLog |
nextEventLog(long id)
Returns the
EventLog with the next id after the given argument or
null if none exists. |
void |
onApplicationEvent(org.springframework.context.ApplicationEvent arg0) |
protected abstract ome.model.meta.EventLog |
query() |
void |
remove() |
void |
rollback(ome.model.meta.EventLog el) |
void |
setBatchSize(int batchSize)
Set the number of
EventLog instances will be loaded in a single
run. |
void |
setExcludes(java.lang.String[] excludes)
Spring injector
|
void |
setQueryService(ome.api.IQuery queryService)
Spring injector
|
void |
setStop(boolean stop)
Called by controlling objects (a worker thread) in order
to free up the thread.
|
protected final org.slf4j.Logger log
public static final int DEFAULT_BATCH_SIZE
protected int batchSize
protected java.util.List<java.lang.String> excludes
protected java.lang.String query
excludes
.initQueryString()
protected ome.api.IQuery queryService
public void setBatchSize(int batchSize)
EventLog
instances will be loaded in a single
run. If not set, DEFAULT_BATCH_SIZE
will be used.batchSize
- public int getBatchSize()
public void setExcludes(java.lang.String[] excludes)
public void setQueryService(ome.api.IQuery queryService)
public boolean hasNext()
count
is -1, then this batch has
ended (set in next()
) and false will be returned,
EventBacklog
will be ready to be switched over to an "adding"
state if empty, andcount
is also reset so further calls can
finish normally; otherwise query()
is called to load a new
eventLog
. Otherwise, just tests that field for null.hasNext
in interface java.util.Iterator<ome.model.meta.EventLog>
public ome.model.meta.EventLog next()
log
instance which may be loaded by a call
to hasNext()
if necessary. If hasNext()
returns false,
a NoSuchElementException
will be thrown.next
in interface java.util.Iterator<ome.model.meta.EventLog>
public final void remove()
remove
in interface java.util.Iterator<ome.model.meta.EventLog>
public void rollback(ome.model.meta.EventLog el)
protected abstract ome.model.meta.EventLog query()
public java.util.Iterator<ome.model.meta.EventLog> iterator()
iterator
in interface java.lang.Iterable<ome.model.meta.EventLog>
public abstract long more()
EventLog
instances are
available for processing. Some implementations may attempt to take extra
measures if the number is too large. Use 1 for a constant rather than
Long.MAX_VALUE
. Use 0 to stop execution.public final ome.model.meta.EventLog nextEventLog(long id)
EventLog
with the next id after the given argument or
null if none exists. This method will only return "true" EventLog
instances, with a valid id.public final ome.model.meta.EventLog lastEventLog()
public boolean addEventLog(java.lang.Class<? extends ome.model.IObject> cls, long id)
EventLog
for the given Class
and id to the
backlog.public void onApplicationEvent(org.springframework.context.ApplicationEvent arg0)
onApplicationEvent
in interface org.springframework.context.ApplicationListener
public boolean isStopSet()
public void setStop(boolean stop)