View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements. See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache license, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License. You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the license for the specific language governing permissions and
15   * limitations under the license.
16   */
17  package org.slf4j.helpers;
18  
19  import org.apache.logging.log4j.Marker;
20  
21  /**
22   *
23   */
24  public class MarkerWrapper extends BasicMarker implements Marker {
25      private static final long serialVersionUID = 1903952589649545191L;
26  
27      private MarkerWrapper parent;
28  
29      MarkerWrapper(final String name) {
30          super(name);
31      }
32  
33      @Override
34      public void add(final org.slf4j.Marker reference) {
35          super.add(reference);
36          ((MarkerWrapper) reference).setParent(this);
37      }
38  
39      private void setParent(final MarkerWrapper marker) {
40          parent = marker;
41      }
42  
43      @Override
44      public Marker getParent() {
45          return this.parent;
46      }
47  
48      @Override
49      public boolean isInstanceOf(final Marker marker) {
50          if (marker == null) {
51              throw new IllegalArgumentException("A marker parameter is required");
52          }
53  
54          if (marker instanceof MarkerWrapper) {
55              return contains((MarkerWrapper) marker);
56          } else {
57              return contains(marker.getName());
58          }
59      }
60  
61      @Override
62      public boolean isInstanceOf(final String name) {
63          if (name == null) {
64              throw new IllegalArgumentException("A marker name is required");
65          }
66          return contains(name);
67      }
68  }