Class CompositeTrimLoggerImpl<T>

  • Type Parameters:
    T - The type of the Record instances managed by the Logger.
    All Implemented Interfaces:
    java.io.Flushable, org.refcodes.component.Closable, org.refcodes.component.CompositeComponent, org.refcodes.component.Decomposeable, org.refcodes.component.Destroyable, org.refcodes.component.Flushable, org.refcodes.component.Initializable, org.refcodes.component.LifeCycleComponent, org.refcodes.component.LinkComponent, org.refcodes.component.Openable, org.refcodes.component.Pausable, org.refcodes.component.Resetable, org.refcodes.component.Resumable, org.refcodes.component.Startable, org.refcodes.component.Stoppable, LogDecorator, Logger<T>, QueryLogger<T>, TrimLogger<T>, org.refcodes.mixin.Disposable, org.refcodes.structure.Clearable


    public class CompositeTrimLoggerImpl<T>
    extends java.lang.Object
    implements org.refcodes.component.CompositeComponent
    The CompositeTrimLoggerImpl is a ready to use implementation of a composite TrimLogger extending the AbstractCompositeTrimLogger.
    See Also:
    AbstractCompositeTrimLogger
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.refcodes.component.Closable

        org.refcodes.component.Closable.CloseAutomaton, org.refcodes.component.Closable.CloseBuilder<B extends org.refcodes.component.Closable.CloseBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.CompositeComponent

        org.refcodes.component.CompositeComponent.ExtendedCompositeComponent<CTX extends java.lang.Object,CON extends java.lang.Object>
      • Nested classes/interfaces inherited from interface org.refcodes.component.Decomposeable

        org.refcodes.component.Decomposeable.DecomposeAutomaton
      • Nested classes/interfaces inherited from interface org.refcodes.component.Destroyable

        org.refcodes.component.Destroyable.DestroyAutomaton
      • Nested classes/interfaces inherited from interface org.refcodes.mixin.Disposable

        org.refcodes.mixin.Disposable.Disposedable
      • Nested classes/interfaces inherited from interface org.refcodes.component.Flushable

        org.refcodes.component.Flushable.FlushBuilder<B extends org.refcodes.component.Flushable.FlushBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.Initializable

        org.refcodes.component.Initializable.InitializeAutomaton, org.refcodes.component.Initializable.InitializeBuilder<B extends org.refcodes.component.Initializable.InitializeBuilder<B>>, org.refcodes.component.Initializable.UncheckedInitializable
      • Nested classes/interfaces inherited from interface org.refcodes.component.LifeCycleComponent

        org.refcodes.component.LifeCycleComponent.LifeCycleAutomaton, org.refcodes.component.LifeCycleComponent.UncheckedLifeCycleComponent
      • Nested classes/interfaces inherited from interface org.refcodes.component.LinkComponent

        org.refcodes.component.LinkComponent.LinkAutomaton, org.refcodes.component.LinkComponent.LinkComponentBuilder<B extends org.refcodes.component.LinkComponent.LinkComponentBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.Openable

        org.refcodes.component.Openable.OpenAutomaton, org.refcodes.component.Openable.OpenBuilder<B extends org.refcodes.component.Openable.OpenBuilder<B>>
      • Nested classes/interfaces inherited from interface org.refcodes.component.Pausable

        org.refcodes.component.Pausable.PauseAutomaton, org.refcodes.component.Pausable.PauseBuilder<B extends org.refcodes.component.Pausable.PauseBuilder<B>>, org.refcodes.component.Pausable.UncheckedPausable
      • Nested classes/interfaces inherited from interface org.refcodes.component.Resumable

        org.refcodes.component.Resumable.ResumeAutomaton, org.refcodes.component.Resumable.ResumeBuilder<B extends org.refcodes.component.Resumable.ResumeBuilder<B>>, org.refcodes.component.Resumable.UncheckedResumable
      • Nested classes/interfaces inherited from interface org.refcodes.component.Startable

        org.refcodes.component.Startable.StartAutomaton, org.refcodes.component.Startable.StartBuilder<B extends org.refcodes.component.Startable.StartBuilder<B>>, org.refcodes.component.Startable.UncheckedStartable
      • Nested classes/interfaces inherited from interface org.refcodes.component.Stoppable

        org.refcodes.component.Stoppable.StopAutomaton, org.refcodes.component.Stoppable.StopBuilder<B extends org.refcodes.component.Stoppable.StopBuilder<B>>, org.refcodes.component.Stoppable.UncheckedStoppable
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear​()
      void close​()
      void decompose​()
      void deleteLogs​(org.refcodes.criteria.Criteria aCriteria)
      Deletes logged Record instances according to the provided Criteria.
      void destroy​()
      void dispose​()
      org.refcodes.tabular.Records<T> findLogs​()
      Retrieves all available Record instances being logged.
      org.refcodes.tabular.Records<T> findLogs​(int aLimit)
      Retrieves all available Record instances being logged matching the given criteria and restrictions.
      org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria)
      Retrieves all available Record instances being logged matching the given criteria and restrictions.
      org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria, int aLimit)
      Retrieves all available Record instances being logged matching the given criteria and restrictions.
      org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria, org.refcodes.tabular.Header<T> aHeader)
      Retrieves all available Record instances being logged matching the given criteria and restrictions.
      org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria, org.refcodes.tabular.Header<T> aHeader, int aLimit)
      Retrieves all available Record instances being logged matching the given criteria and restrictions.
      org.refcodes.tabular.Records<T> findLogs​(org.refcodes.tabular.Header<T> aHeader, int aLimit)
      Retrieves all available Record instances being logged matching the given criteria and restrictions.
      void flush​()
      protected java.util.Collection<L> getLoggers​()
      Gets the loggers.
      void initialize​()
      void log​(org.refcodes.tabular.Record<? extends T> aRecord)
      Logs a Record.
      void open​()
      void pause​()
      void reset​()
      void resume​()
      void start​()
      void stop​()
      • Methods inherited from interface org.refcodes.component.Closable

        closeIn, closeQuietly, closeUnchecked
      • Methods inherited from interface org.refcodes.component.Flushable

        flushUnchecked, isFlushable
      • Methods inherited from interface org.refcodes.component.Initializable

        initializeUnchecked
      • Methods inherited from interface org.refcodes.logger.Logger

        log
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.refcodes.component.Openable

        openUnchecked
      • Methods inherited from interface org.refcodes.component.Pausable

        pauseUnchecked
      • Methods inherited from interface org.refcodes.component.Resumable

        resumeUnchecked
      • Methods inherited from interface org.refcodes.component.Startable

        startUnchecked
      • Methods inherited from interface org.refcodes.component.Stoppable

        stopUnchecked
    • Constructor Detail

      • CompositeTrimLoggerImpl

        @SafeVarargs
        public CompositeTrimLoggerImpl​(TrimLogger<T>... aLoggers)
        Instantiates a new composite trim logger impl.
        Parameters:
        aLoggers - the loggers
        See Also:
        AbstractCompositeTrimLogger(TrimLogger...)
      • CompositeTrimLoggerImpl

        @SafeVarargs
        public CompositeTrimLoggerImpl​(org.refcodes.controlflow.ExecutionStrategy aComponentExecutionStrategy,
                                       TrimLogger<T>... aLoggers)
        Similar to the CompositeTrimLoggerImpl(TrimLogger...) with the additional option of determining the execution strategy of the state change request calls for the encapsulated TrimLogger instances (as of CompositeComponent).
        Parameters:
        aComponentExecutionStrategy - The strategy to be used when invoking a component's (encapsulated TrimLogger instance's) state change request call (as of CompositeComponent).
    • Method Detail

      • initialize

        public void initialize​()
                        throws org.refcodes.component.InitializeException
        Specified by:
        initialize in interface org.refcodes.component.Initializable
        Throws:
        org.refcodes.component.InitializeException
      • start

        public void start​()
                   throws org.refcodes.component.StartException
        Specified by:
        start in interface org.refcodes.component.Startable
        Throws:
        org.refcodes.component.StartException
      • pause

        public void pause​()
                   throws org.refcodes.component.PauseException
        Specified by:
        pause in interface org.refcodes.component.Pausable
        Throws:
        org.refcodes.component.PauseException
      • resume

        public void resume​()
                    throws org.refcodes.component.ResumeException
        Specified by:
        resume in interface org.refcodes.component.Resumable
        Throws:
        org.refcodes.component.ResumeException
      • stop

        public void stop​()
                  throws org.refcodes.component.StopException
        Specified by:
        stop in interface org.refcodes.component.Stoppable
        Throws:
        org.refcodes.component.StopException
      • decompose

        public void decompose​()
        Specified by:
        decompose in interface org.refcodes.component.Decomposeable
      • flush

        public void flush​()
                   throws org.refcodes.component.OpenException
        Specified by:
        flush in interface java.io.Flushable
        Specified by:
        flush in interface org.refcodes.component.Flushable
        Throws:
        org.refcodes.component.OpenException
      • destroy

        public void destroy​()
        Specified by:
        destroy in interface org.refcodes.component.Destroyable
      • reset

        public void reset​()
        Specified by:
        reset in interface org.refcodes.component.Resetable
      • open

        public void open​()
                  throws org.refcodes.component.OpenException
        Specified by:
        open in interface org.refcodes.component.Openable
        Throws:
        org.refcodes.component.OpenException
      • close

        public void close​()
        Specified by:
        close in interface org.refcodes.component.Closable
      • dispose

        public void dispose​()
        Specified by:
        dispose in interface org.refcodes.mixin.Disposable
      • clear

        public void clear​()
        Specified by:
        clear in interface org.refcodes.structure.Clearable
      • deleteLogs

        public void deleteLogs​(org.refcodes.criteria.Criteria aCriteria)
        Deletes logged Record instances according to the provided Criteria.
        Specified by:
        deleteLogs in interface TrimLogger<L extends TrimLogger<T>>
        Parameters:
        aCriteria - The Criteria to be applied when deleting previously logged Record instances.
      • findLogs

        public org.refcodes.tabular.Records<T> findLogs​()
        Retrieves all available Record instances being logged.
        Specified by:
        findLogs in interface QueryLogger<L extends QueryLogger<T>>
        Returns:
        A Records instance containing all available Record instances being logged.
      • findLogs

        public org.refcodes.tabular.Records<T> findLogs​(int aLimit)
        Retrieves all available Record instances being logged matching the given criteria and restrictions.
        Specified by:
        findLogs in interface QueryLogger<L extends QueryLogger<T>>
        Parameters:
        aLimit - The maximum Record instances contained in the returned Records instance; there may be more Record instances which are not contained in the Records instance in case the Records instance's size is that of the specified limit.
        Returns:
        A Records instance containing all available Record instances being logged matching the given criteria and restrictions.
      • findLogs

        public org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria)
        Retrieves all available Record instances being logged matching the given criteria and restrictions.
        Specified by:
        findLogs in interface QueryLogger<L extends QueryLogger<T>>
        Parameters:
        aCriteria - The Criteria to be applied to the Record instances
        Returns:
        A Records instance containing all available Record instances being logged matching the given criteria and restrictions.
      • findLogs

        public org.refcodes.tabular.Records<T> findLogs​(org.refcodes.tabular.Header<T> aHeader,
                                                        int aLimit)
        Retrieves all available Record instances being logged matching the given criteria and restrictions.
        Specified by:
        findLogs in interface QueryLogger<L extends QueryLogger<T>>
        Parameters:
        aHeader - The Header used to restrict the "columns" (key/value entries) in the retrieved Record instances (provided by the Records instance).
        aLimit - The maximum Record instances contained in the returned Records instance; there may be more Record instances which are not contained in the Records instance in case the Records instance's size is that of the specified limit.
        Returns:
        A Records instance containing all available Record instances being logged matching the given criteria and restrictions.
      • findLogs

        public org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria,
                                                        int aLimit)
        Retrieves all available Record instances being logged matching the given criteria and restrictions.
        Specified by:
        findLogs in interface QueryLogger<L extends QueryLogger<T>>
        Parameters:
        aCriteria - The Criteria to be applied to the Record instances
        aLimit - The maximum Record instances contained in the returned Records instance; there may be more Record instances which are not contained in the Records instance in case the Records instance's size is that of the specified limit.
        Returns:
        A Records instance containing all available Record instances being logged matching the given criteria and restrictions.
      • findLogs

        public org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria,
                                                        org.refcodes.tabular.Header<T> aHeader)
        Retrieves all available Record instances being logged matching the given criteria and restrictions.
        Specified by:
        findLogs in interface QueryLogger<L extends QueryLogger<T>>
        Parameters:
        aCriteria - The Criteria to be applied to the Record instances
        aHeader - The Header used to restrict the "columns" (key/value entries) in the retrieved Record instances (provided by the Records instance).
        Returns:
        A Records instance containing all available Record instances being logged matching the given criteria and restrictions.
      • findLogs

        public org.refcodes.tabular.Records<T> findLogs​(org.refcodes.criteria.Criteria aCriteria,
                                                        org.refcodes.tabular.Header<T> aHeader,
                                                        int aLimit)
        Retrieves all available Record instances being logged matching the given criteria and restrictions.
        Specified by:
        findLogs in interface QueryLogger<L extends QueryLogger<T>>
        Parameters:
        aCriteria - The Criteria to be applied to the Record instances
        aHeader - The Header used to restrict the "columns" (key/value entries) in the retrieved Record instances (provided by the Records instance).
        aLimit - The maximum Record instances contained in the returned Records instance; there may be more Record instances which are not contained in the Records instance in case the Records instance's size is that of the specified limit.
        Returns:
        A Records instance containing all available Record instances being logged matching the given criteria and restrictions.
      • log

        public void log​(org.refcodes.tabular.Record<? extends T> aRecord)
                 throws IllegalRecordRuntimeException,
                        UnexpectedLogRuntimeException
        Logs a 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.
        Specified by:
        log in interface Logger<L extends Logger<T>>
        Parameters:
        aRecord - The Record to be logged.
        Throws:
        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.
      • getLoggers

        protected java.util.Collection<L> getLoggers​()
        Gets the loggers.
        Returns:
        the loggers