001package org.javasimon.callback.logging;
002
003/**
004 * Base class for log template which delegates part of the work to a concrete log template.
005 *
006 * @author gquintana
007 */
008public abstract class DelegateLogTemplate<C> extends LogTemplate<C> {
009
010        /** Delegate log template. */
011        private final LogTemplate<C> delegate;
012
013        /**
014         * Constructor with delegate log template.
015         *
016         * @param delegate delegate log template
017         */
018        public DelegateLogTemplate(LogTemplate<C> delegate) {
019                this.delegate = delegate;
020        }
021
022        /**
023         * Get delegate log template.
024         *
025         * @return Delegate log template
026         */
027        public LogTemplate getDelegate() {
028                return delegate;
029        }
030
031        protected boolean isEnabled(C context) {
032                return delegate.isEnabled(context);
033        }
034
035        protected void log(String message) {
036                delegate.log(message);
037        }
038}