View Javadoc

1   /**
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2011, 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.core.pattern;
15  
16  public class ConverterUtil {
17  
18    /**
19     * Start converters in the chain of converters.
20     *
21     * @param head
22     */
23    public static void startConverters(Converter head) {
24      Converter c = head;
25      while (c != null) {
26        // CompositeConverter is a subclass of  DynamicConverter
27        if (c instanceof CompositeConverter) {
28          CompositeConverter cc = (CompositeConverter) c;
29          Converter childConverter = cc.childConverter;
30          startConverters(childConverter);
31          cc.start();
32        } else if (c instanceof DynamicConverter) {
33          DynamicConverter dc = (DynamicConverter) c;
34          dc.start();
35        }
36        c = c.getNext();
37      }
38    }
39  
40  
41    public static <E> Converter<E> findTail(Converter<E> head) {
42      Converter<E> p = head;
43      while (p != null) {
44        Converter<E> next = p.getNext();
45        if (next == null) {
46          break;
47        } else {
48          p = next;
49        }
50      }
51      return p;
52    }
53  }