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