1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.slf4j;
18
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
22
23 import org.apache.logging.log4j.MarkerManager;
24 import org.slf4j.IMarkerFactory;
25 import org.slf4j.Marker;
26 import org.slf4j.impl.StaticMarkerBinder;
27
28
29
30
31 public class Log4jMarker implements Marker {
32
33 public static final long serialVersionUID = 1590472L;
34
35 private final IMarkerFactory factory = StaticMarkerBinder.SINGLETON.getMarkerFactory();
36
37 private final org.apache.logging.log4j.Marker marker;
38
39 public Log4jMarker(final org.apache.logging.log4j.Marker marker) {
40 this.marker = marker;
41 }
42
43 public org.apache.logging.log4j.Marker getLog4jMarker() {
44 return marker;
45 }
46
47 @Override
48 public void add(final Marker marker) {
49 final Marker m = factory.getMarker(marker.getName());
50 this.marker.addParents(((Log4jMarker)m).getLog4jMarker());
51 }
52
53 @Override
54 public boolean remove(final Marker marker) {
55 return this.marker.remove(MarkerManager.getMarker(marker.getName()));
56 }
57
58 @Override
59 public String getName() {
60 return marker.getName();
61 }
62
63 @Override
64 public boolean hasReferences() {
65 return marker.hasParents();
66 }
67
68 @Override
69 public boolean hasChildren() {
70 return marker.hasParents();
71 }
72
73 @Override
74 @SuppressWarnings("rawtypes")
75 public Iterator iterator() {
76 final List<Marker> parents = new ArrayList<Marker>();
77 for (final org.apache.logging.log4j.Marker m : this.marker.getParents()) {
78 parents.add(factory.getMarker(m.getName()));
79 }
80 return parents.iterator();
81 }
82
83 @Override
84 public boolean contains(final org.slf4j.Marker marker) {
85 return this.marker.isInstanceOf(marker.getName());
86 }
87
88 @Override
89 public boolean contains(final String s) {
90 return this.marker.isInstanceOf(s);
91 }
92 }