L
- The type of the Logger
to be created.P
- The type of the Column
's value used for partitioning the
Logger
.public class PartedLoggerImpl<T,P extends T> extends Object implements org.refcodes.component.CompositeComponent
PartedLoggerImpl
is a ready to use implementation of a parted
Logger
extending the AbstractPartedLogger
.AbstractPartedLogger
org.refcodes.component.CompositeComponent.ExtendedCompositeComponent<CTX,CON>
org.refcodes.component.LifeCycleComponent.LifeCycleAutomaton, org.refcodes.component.LifeCycleComponent.UncheckedLifeCycleComponent
org.refcodes.component.Initializable.InitializeAutomaton, org.refcodes.component.Initializable.InitializeBuilder<B extends org.refcodes.component.Initializable.InitializeBuilder<B>>, org.refcodes.component.Initializable.UncheckedInitializable
org.refcodes.component.Startable.StartAutomaton, org.refcodes.component.Startable.StartBuilder<B extends org.refcodes.component.Startable.StartBuilder<B>>, org.refcodes.component.Startable.UncheckedStartable
org.refcodes.component.Pausable.PauseAutomaton, org.refcodes.component.Pausable.PauseBuilder<B extends org.refcodes.component.Pausable.PauseBuilder<B>>, org.refcodes.component.Pausable.UncheckedPausable
org.refcodes.component.Resumable.ResumeAutomaton, org.refcodes.component.Resumable.ResumeBuilder<B extends org.refcodes.component.Resumable.ResumeBuilder<B>>, org.refcodes.component.Resumable.UncheckedResumable
org.refcodes.component.Stoppable.StopAutomaton, org.refcodes.component.Stoppable.StopBuilder<B extends org.refcodes.component.Stoppable.StopBuilder<B>>, org.refcodes.component.Stoppable.UncheckedStoppable
org.refcodes.component.Destroyable.DestroyAutomaton
org.refcodes.component.LinkComponent.LinkAutomaton, org.refcodes.component.LinkComponent.LinkComponentBuilder<B extends org.refcodes.component.LinkComponent.LinkComponentBuilder<B>>
org.refcodes.component.Openable.OpenAutomaton, org.refcodes.component.Openable.OpenBuilder<B extends org.refcodes.component.Openable.OpenBuilder<B>>
org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
Modifier and Type | Field and Description |
---|---|
protected static RuntimeLogger |
LOGGER |
Constructor and Description |
---|
PartedLoggerImpl(org.refcodes.tabular.Column<P> aPartitionColumn,
LoggerFactory<Logger<T>> aLoggerFactory,
boolean isPartitionAutoInitialize) |
PartedLoggerImpl(org.refcodes.tabular.Column<P> aPartitionColumn,
String aDefaultLoggerName,
LoggerFactory<Logger<T>> aLoggerFactory,
boolean isPartitionAutoInitialize) |
PartedLoggerImpl(org.refcodes.controlflow.ExecutionStrategy aComponentExecutionStrategy,
org.refcodes.tabular.Column<P> aPartitionColumn,
LoggerFactory<Logger<T>> aLoggerFactory,
boolean isPartitionAutoInitialize)
Similar to the
#PartedLoggerImpl(Column, LoggerToRuntimeLoggerFactory, boolean)
with the additional option of determining the execution strategy of the
state change request calls for the encapsulated Logger instances
(as of CompositeComponent ). |
PartedLoggerImpl(org.refcodes.controlflow.ExecutionStrategy aComponentExecutionStrategy,
org.refcodes.tabular.Column<P> aPartitionColumn,
String aDefaultLoggerName,
LoggerFactory<Logger<T>> aLoggerFactory,
boolean isPartitionAutoInitialize)
Similar to the
#PartedLoggerImpl(Column, String, LoggerToRuntimeLoggerFactory, boolean) with
the additional option of determining the execution strategy of the state
change request calls for the encapsulated Logger instances (as of
CompositeComponent ). |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
decompose() |
void |
decomposePartition(P aPartition)
Decomposes the given partition.
|
void |
destroy() |
void |
destroyPartition(P aPartition)
Destroys the given partition.
|
void |
dispose() |
void |
flush() |
void |
flushPartition(P aPartition)
Flushes the given partition, all buffered data is to be forwarded to the
physical data sink.
|
protected L |
getFallbackLogger()
Returns the fallback
Logger . |
protected Collection<L> |
getLoggers()
Provides access to the partitions managed by the
AbstractPartedLogger . |
protected org.refcodes.tabular.Column<P> |
getPartitionColumn()
Provides access to the
Column used to identify partitions. |
protected L |
getPartitionLogger(P aPartition)
Returns the
Logger being responsible for the given partition. |
protected String |
getPartitionUid(P aPartition)
Depending whether the partition object provides a universal ID or not we
return the string representation of the partition's object or the UID.
|
boolean |
hasPartition(P aPartition)
Tests whether the provided partition exists.
|
void |
initialize() |
L |
initPartition(P aPartition)
Initializes the given partition.
|
void |
log(org.refcodes.tabular.Record<? extends T> aRecord)
Logs a
Record . |
void |
open() |
void |
pause() |
void |
reset() |
void |
resume() |
void |
start() |
void |
stop() |
protected static RuntimeLogger LOGGER
public PartedLoggerImpl(org.refcodes.tabular.Column<P> aPartitionColumn, LoggerFactory<Logger<T>> aLoggerFactory, boolean isPartitionAutoInitialize)
public PartedLoggerImpl(org.refcodes.tabular.Column<P> aPartitionColumn, String aDefaultLoggerName, LoggerFactory<Logger<T>> aLoggerFactory, boolean isPartitionAutoInitialize)
public PartedLoggerImpl(org.refcodes.controlflow.ExecutionStrategy aComponentExecutionStrategy, org.refcodes.tabular.Column<P> aPartitionColumn, LoggerFactory<Logger<T>> aLoggerFactory, boolean isPartitionAutoInitialize)
#PartedLoggerImpl(Column, LoggerToRuntimeLoggerFactory, boolean)
with the additional option of determining the execution strategy of the
state change request calls for the encapsulated Logger
instances
(as of CompositeComponent
).
aComponentExecutionStrategy
- The strategy to be used when invoking
a component's (encapsulated Logger
instance's) state
change request call (as of CompositeComponent
).public PartedLoggerImpl(org.refcodes.controlflow.ExecutionStrategy aComponentExecutionStrategy, org.refcodes.tabular.Column<P> aPartitionColumn, String aDefaultLoggerName, LoggerFactory<Logger<T>> aLoggerFactory, boolean isPartitionAutoInitialize)
#PartedLoggerImpl(Column, String, LoggerToRuntimeLoggerFactory, boolean)
with
the additional option of determining the execution strategy of the state
change request calls for the encapsulated Logger
instances (as of
CompositeComponent
).
aComponentExecutionStrategy
- The strategy to be used when invoking
a component's (encapsulated Logger
instance's) state
change request call (as of CompositeComponent
).public void initialize() throws org.refcodes.component.InitializeException
initialize
in interface org.refcodes.component.Initializable
org.refcodes.component.InitializeException
public void start() throws org.refcodes.component.StartException
start
in interface org.refcodes.component.Startable
org.refcodes.component.StartException
public void pause() throws org.refcodes.component.PauseException
pause
in interface org.refcodes.component.Pausable
org.refcodes.component.PauseException
public void resume() throws org.refcodes.component.ResumeException
resume
in interface org.refcodes.component.Resumable
org.refcodes.component.ResumeException
public void stop() throws org.refcodes.component.StopException
stop
in interface org.refcodes.component.Stoppable
org.refcodes.component.StopException
public void decompose()
decompose
in interface org.refcodes.component.Decomposeable
public void flush() throws org.refcodes.component.OpenException
public void destroy()
destroy
in interface org.refcodes.component.Destroyable
public void reset()
reset
in interface org.refcodes.component.Resetable
public void open() throws org.refcodes.component.OpenException
open
in interface org.refcodes.component.Openable
org.refcodes.component.OpenException
public void close()
close
in interface org.refcodes.component.Closable
public void dispose()
dispose
in interface org.refcodes.mixin.Disposable
public void log(org.refcodes.tabular.Record<? extends T> aRecord) throws IllegalRecordRuntimeException, UnexpectedLogRuntimeException
Logger
Record
. The targeted data sink for the Record
instances (where them are physically stored) depends on the
implementation of the Logger
. It can be a console, a file, a
stream or a database.log
in interface Logger<T>
aRecord
- The Record
to be logged.IllegalRecordRuntimeException
- Thrown in case the record cannot be
logged as a specific implementation might expect some dedicated
Column
instances to be contained in the provided Record.UnexpectedLogRuntimeException
- Thrown in case some other problems
regarding logging occurred, e.g. the data sink (physical system
where to log to) experiences problems.public boolean hasPartition(P aPartition)
aPartition
- The value of the Column
in a Record
specifying the partition which is to be addressed (or even auto
initialized).public L initPartition(P aPartition) throws org.refcodes.component.InitializeException
aPartition
- The value of the Column
in a Record
specifying the partition which is to be auto initialized.org.refcodes.component.InitializeException
- in case initialization failed e.g. when the
partition already exists or the system was not able to create the
required amount of endpoints.public void destroyPartition(P aPartition)
@param
- aPartition The partition to be destroyed.public void flushPartition(P aPartition) throws IOException
aPartition
- The partition to be flushed.IOException
- in case there were problems when flushing, e.g.
there is none such partition.public void decomposePartition(P aPartition)
aPartition
- The partition to be decomposed.protected Collection<L> getLoggers()
AbstractPartedLogger
. This is especially useful for extensions of
this class such as the AbstractPartedQueryLogger
or the
AbstractPartedTrimLogger
.Logger
instances managed by the
AbstractPartedLogger
instance.protected String getPartitionUid(P aPartition)
aPartition
- The partition for which to get the identifierprotected org.refcodes.tabular.Column<P> getPartitionColumn()
Column
used to identify partitions.Column
identifying partitions.protected L getPartitionLogger(P aPartition)
Logger
being responsible for the given partition.protected L getFallbackLogger()
Logger
.Copyright © 2017. All rights reserved.