View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.enforcer.rule.api;
20  
21  import java.util.function.Supplier;
22  
23  /**
24   * Logger used by enforcer rule.
25   *
26   * @author Slawomir Jaranowski
27   * @since 3.2.1
28   */
29  public interface EnforcerLogger {
30  
31      /**
32       * Log message in {@code warn} or {@code error} level according to current rule {@link EnforcerLevel}.
33       *
34       * @param message a massage to log
35       */
36      void warnOrError(CharSequence message);
37  
38      /**
39       * Log message in {@code warn} or {@code error} level according to current rule {@link EnforcerLevel}.
40       * <p>
41       * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
42       *
43       * @param messageSupplier a supplier for message to log
44       */
45      void warnOrError(Supplier<CharSequence> messageSupplier);
46  
47      /**
48       * Is the logger instance enabled for the DEBUG level?
49       *
50       * @return {@code true} if this Logger is enabled for the DEBUG level, {@code false} otherwise.
51       * @since 3.4.0
52       */
53      boolean isDebugEnabled();
54  
55      /**
56       * Log message in {@code debug} level.
57       *
58       * @param message a massage to log
59       */
60      void debug(CharSequence message);
61  
62      /**
63       * Log message in {@code debug} level.
64       * <p>
65       * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
66       *
67       * @param messageSupplier a supplier for message to log
68       */
69      void debug(Supplier<CharSequence> messageSupplier);
70  
71      /**
72       * Is the logger instance enabled for the INFO level?
73       *
74       * @return {@code true} if this Logger is enabled for the INFO level, {@code false} otherwise.
75       * @since 3.4.0
76       */
77      boolean isInfoEnabled();
78  
79      /**
80       * Log message in {@code info} level.
81       *
82       * @param message a massage to log
83       */
84      void info(CharSequence message);
85  
86      /**
87       * Log message in {@code info} level.
88       * <p>
89       * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
90       *
91       * @param messageSupplier a supplier for message to log
92       */
93      void info(Supplier<CharSequence> messageSupplier);
94  
95      /**
96       * Is the logger instance enabled for the WARN level?
97       *
98       * @return {@code true} if this Logger is enabled for the WARN level, {@code false} otherwise.
99       * @since 3.4.0
100      */
101     boolean isWarnEnabled();
102 
103     /**
104      * Log message in {@code warn} level.
105      *
106      * @param message a massage to log
107      */
108     void warn(CharSequence message);
109 
110     /**
111      * Log message in {@code warn} level.
112      * <p>
113      * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
114      *
115      * @param messageSupplier a supplier for message to log
116      */
117     void warn(Supplier<CharSequence> messageSupplier);
118 
119     /**
120      * Is the logger instance enabled for the ERROR level?
121      *
122      * @return {@code true} if this Logger is enabled for the ERROR level, {@code false} otherwise.
123      * @since 3.4.0
124      */
125     boolean isErrorEnabled();
126 
127     /**
128      * Log message in {@code error} level.
129      *
130      * @param message a massage to log
131      */
132     void error(CharSequence message);
133 
134     /**
135      * Log message in {@code error} level.
136      * <p>
137      * {@code messageSupplier} will be evaluate only when corresponding log level is enabled.
138      *
139      * @param messageSupplier a supplier for message to log
140      */
141     void error(Supplier<CharSequence> messageSupplier);
142 }