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  abstract public class CompositeConverter<E> extends DynamicConverter<E> {
17  
18    Converter<E> childConverter;
19  
20    public String convert(E event) {
21      StringBuilder buf = new StringBuilder();
22  
23      for (Converter<E> c = childConverter; c != null; c = c.next) {
24        c.write(buf, event);
25      }
26      String intermediary = buf.toString();
27      return transform(intermediary);
28    }
29  
30    abstract String transform(String in);
31  
32    public void setChildConverter(Converter<E> child) {
33      childConverter = child;
34    }
35  
36    public String toString() {
37      StringBuilder buf = new StringBuilder();
38      buf.append("CompositeConverter<");
39      
40      if(formattingInfo != null)
41      buf.append(formattingInfo);
42      
43      if (childConverter != null) {
44        buf.append(", children: ").append(childConverter);
45      }
46      buf.append(">");
47      return buf.toString();
48    }
49  }