001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache license, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the license for the specific language governing permissions and
015 * limitations under the license.
016 */
017package org.apache.logging.log4j.message;
018
019/**
020 * Creates messages. Implementations can provide different message format syntaxes.
021 *
022 * @see ParameterizedMessageFactory
023 * @since 2.6
024 */
025public interface MessageFactory2 extends MessageFactory {
026    
027    /**
028     * Creates a new message for the specified CharSequence.
029     * @param charSequence the (potentially mutable) CharSequence
030     * @return a new message for the specified CharSequence
031     */
032    Message newMessage(CharSequence charSequence);
033
034    /**
035     * Creates a new parameterized message.
036     *
037     * @param message a message template, the kind of message template depends on the implementation.
038     * @param p0 a message parameter
039     * @return a new message
040     * @see ParameterizedMessageFactory
041     */
042    Message newMessage(String message, Object p0);
043
044    /**
045     * Creates a new parameterized message.
046     *
047     * @param message a message template, the kind of message template depends on the implementation.
048     * @param p0 a message parameter
049     * @param p1 a message parameter
050     * @return a new message
051     * @see ParameterizedMessageFactory
052     */
053    Message newMessage(String message, Object p0, Object p1);
054
055    /**
056     * Creates a new parameterized message.
057     *
058     * @param message a message template, the kind of message template depends on the implementation.
059     * @param p0 a message parameter
060     * @param p1 a message parameter
061     * @param p2 a message parameter
062     * @return a new message
063     * @see ParameterizedMessageFactory
064     */
065    Message newMessage(String message, Object p0, Object p1, Object p2);
066
067    /**
068     * Creates a new parameterized message.
069     *
070     * @param message a message template, the kind of message template depends on the implementation.
071     * @param p0 a message parameter
072     * @param p1 a message parameter
073     * @param p2 a message parameter
074     * @param p3 a message parameter
075     * @return a new message
076     * @see ParameterizedMessageFactory
077     */
078    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3);
079
080    /**
081     * Creates a new parameterized message.
082     *
083     * @param message a message template, the kind of message template depends on the implementation.
084     * @param p0 a message parameter
085     * @param p1 a message parameter
086     * @param p2 a message parameter
087     * @param p3 a message parameter
088     * @param p4 a message parameter
089     * @return a new message
090     * @see ParameterizedMessageFactory
091     */
092    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
093
094    /**
095     * Creates a new parameterized message.
096     *
097     * @param message a message template, the kind of message template depends on the implementation.
098     * @param p0 a message parameter
099     * @param p1 a message parameter
100     * @param p2 a message parameter
101     * @param p3 a message parameter
102     * @param p4 a message parameter
103     * @param p5 a message parameter
104     * @return a new message
105     * @see ParameterizedMessageFactory
106     */
107    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
108
109    /**
110     * Creates a new parameterized message.
111     *
112     * @param message a message template, the kind of message template depends on the implementation.
113     * @param p0 a message parameter
114     * @param p1 a message parameter
115     * @param p2 a message parameter
116     * @param p3 a message parameter
117     * @param p4 a message parameter
118     * @param p5 a message parameter
119     * @param p6 a message parameter
120     * @return a new message
121     * @see ParameterizedMessageFactory
122     */
123    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
124
125    /**
126     * Creates a new parameterized message.
127     *
128     * @param message a message template, the kind of message template depends on the implementation.
129     * @param p0 a message parameter
130     * @param p1 a message parameter
131     * @param p2 a message parameter
132     * @param p3 a message parameter
133     * @param p4 a message parameter
134     * @param p5 a message parameter
135     * @param p6 a message parameter
136     * @param p7 a message parameter
137     * @return a new message
138     * @see ParameterizedMessageFactory
139     */
140    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
141            Object p7);
142
143    /**
144     * Creates a new parameterized message.
145     *
146     * @param message a message template, the kind of message template depends on the implementation.
147     * @param p0 a message parameter
148     * @param p1 a message parameter
149     * @param p2 a message parameter
150     * @param p3 a message parameter
151     * @param p4 a message parameter
152     * @param p5 a message parameter
153     * @param p6 a message parameter
154     * @param p7 a message parameter
155     * @param p8 a message parameter
156     * @return a new message
157     * @see ParameterizedMessageFactory
158     */
159    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
160            Object p7, Object p8);
161
162    /**
163     * Creates a new parameterized message.
164     *
165     * @param message a message template, the kind of message template depends on the implementation.
166     * @param p0 a message parameter
167     * @param p1 a message parameter
168     * @param p2 a message parameter
169     * @param p3 a message parameter
170     * @param p4 a message parameter
171     * @param p5 a message parameter
172     * @param p6 a message parameter
173     * @param p7 a message parameter
174     * @param p8 a message parameter
175     * @param p9 a message parameter
176     * @return a new message
177     * @see ParameterizedMessageFactory
178     */
179    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
180            Object p7, Object p8, Object p9);
181}