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 }