View Javadoc

1   /**
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2009, QOS.ch. All rights reserved.
4    *
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    *
9    *   or (per the licensee's choosing)
10   *
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  package ch.qos.logback.classic.spi;
15  
16  import ch.qos.logback.classic.LoggerContext;
17  import ch.qos.logback.core.Context;
18  import ch.qos.logback.core.spi.ContextAwareBase;
19  
20  
21  public class LoggerContextAwareBase extends ContextAwareBase implements LoggerContextAware {
22    
23    /**
24     * Set the owning context. The owning context cannot be set more than
25     * once.
26     */
27    public void setLoggerContext(LoggerContext context) {
28      super.setContext(context);
29    }
30  
31    public void setContext(Context context) {
32      // check that the context is of type LoggerContext. Otherwise, throw an exception
33      // Context == null is a degenarate case but nonetheless permitted.
34      if(context instanceof LoggerContext || context == null) {
35        super.setContext(context);
36      } else {
37        throw new IllegalArgumentException("LoggerContextAwareBase only accepts contexts of type c.l.classic.LoggerContext");
38      }
39    }
40  
41    /**
42     * Return the {@link LoggerContext} this component is attached to.
43     * 
44     * @return The owning LoggerContext
45     */
46    public LoggerContext getLoggerContext() {
47      return (LoggerContext) context;
48    }
49    
50  }