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 */
024public interface MessageFactory2 extends MessageFactory {
025    /**
026     * Creates a new message for the specified CharSequence.
027     * @param charSequence the (potentially mutable) CharSequence
028     * @return a new message for the specified CharSequence
029     */
030    Message newMessage(CharSequence charSequence);
031
032    /**
033     * Creates a new parameterized message.
034     *
035     * @param message a message template, the kind of message template depends on the implementation.
036     * @param p0 the message parameters
037     * @return a new message
038     * @see ParameterizedMessageFactory
039     */
040    Message newMessage(String message, Object p0);
041
042    /**
043     * Creates a new parameterized message.
044     *
045     * @param message a message template, the kind of message template depends on the implementation.
046     * @param p0 the message parameters
047     * @param p1 the message parameters
048     * @return a new message
049     * @see ParameterizedMessageFactory
050     */
051    Message newMessage(String message, Object p0, Object p1);
052
053    /**
054     * Creates a new parameterized message.
055     *
056     * @param message a message template, the kind of message template depends on the implementation.
057     * @param p0 the message parameters
058     * @param p1 the message parameters
059     * @param p2 the message parameters
060     * @return a new message
061     * @see ParameterizedMessageFactory
062     */
063    Message newMessage(String message, Object p0, Object p1, Object p2);
064
065    /**
066     * Creates a new parameterized message.
067     *
068     * @param message a message template, the kind of message template depends on the implementation.
069     * @param p0 the message parameters
070     * @param p1 the message parameters
071     * @param p2 the message parameters
072     * @param p3 the message parameters
073     * @return a new message
074     * @see ParameterizedMessageFactory
075     */
076    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3);
077
078    /**
079     * Creates a new parameterized message.
080     *
081     * @param message a message template, the kind of message template depends on the implementation.
082     * @param p0 the message parameters
083     * @param p1 the message parameters
084     * @param p2 the message parameters
085     * @param p3 the message parameters
086     * @param p4 the message parameters
087     * @return a new message
088     * @see ParameterizedMessageFactory
089     */
090    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4);
091
092    /**
093     * Creates a new parameterized message.
094     *
095     * @param message a message template, the kind of message template depends on the implementation.
096     * @param p0 the message parameters
097     * @param p1 the message parameters
098     * @param p2 the message parameters
099     * @param p3 the message parameters
100     * @param p4 the message parameters
101     * @param p5 the message parameters
102     * @return a new message
103     * @see ParameterizedMessageFactory
104     */
105    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5);
106
107    /**
108     * Creates a new parameterized message.
109     *
110     * @param message a message template, the kind of message template depends on the implementation.
111     * @param p0 the message parameters
112     * @param p1 the message parameters
113     * @param p2 the message parameters
114     * @param p3 the message parameters
115     * @param p4 the message parameters
116     * @param p5 the message parameters
117     * @param p6 the message parameters
118     * @return a new message
119     * @see ParameterizedMessageFactory
120     */
121    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6);
122
123    /**
124     * Creates a new parameterized message.
125     *
126     * @param message a message template, the kind of message template depends on the implementation.
127     * @param p0 the message parameters
128     * @param p1 the message parameters
129     * @param p2 the message parameters
130     * @param p3 the message parameters
131     * @param p4 the message parameters
132     * @param p5 the message parameters
133     * @param p6 the message parameters
134     * @param p7 the message parameters
135     * @return a new message
136     * @see ParameterizedMessageFactory
137     */
138    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
139            Object p7);
140
141    /**
142     * Creates a new parameterized message.
143     *
144     * @param message a message template, the kind of message template depends on the implementation.
145     * @param p0 the message parameters
146     * @param p1 the message parameters
147     * @param p2 the message parameters
148     * @param p3 the message parameters
149     * @param p4 the message parameters
150     * @param p5 the message parameters
151     * @param p6 the message parameters
152     * @param p7 the message parameters
153     * @param p8 the message parameters
154     * @return a new message
155     * @see ParameterizedMessageFactory
156     */
157    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
158            Object p7, Object p8);
159
160    /**
161     * Creates a new parameterized message.
162     *
163     * @param message a message template, the kind of message template depends on the implementation.
164     * @param p0 the message parameters
165     * @param p1 the message parameters
166     * @param p2 the message parameters
167     * @param p3 the message parameters
168     * @param p4 the message parameters
169     * @param p5 the message parameters
170     * @param p6 the message parameters
171     * @param p7 the message parameters
172     * @param p8 the message parameters
173     * @param p9 the message parameters
174     * @return a new message
175     * @see ParameterizedMessageFactory
176     */
177    Message newMessage(String message, Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6,
178            Object p7, Object p8, Object p9);
179}