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 {@link FormattedMessage} instances for {@link MessageFactory2} methods (and {@link MessageFactory} by 021 * extension.) 022 * <p> 023 * Enables the use of <code>{}</code> parameter markers in message strings. 024 * </p> 025 * <p> 026 * Creates {@link ParameterizedMessage} instances for {@link #newMessage(String, Object...)}. 027 * </p> 028 * <p> 029 * This class is immutable. 030 * </p> 031 * 032 * <h4>Note to implementors</h4> 033 * <p> 034 * This class implements all {@link MessageFactory2} methods. 035 * </p> 036 */ 037public final class ParameterizedMessageFactory extends AbstractMessageFactory { 038 /** 039 * Instance of ParameterizedMessageFactory. 040 */ 041 public static final ParameterizedMessageFactory INSTANCE = new ParameterizedMessageFactory(); 042 043 private static final long serialVersionUID = -8970940216592525651L; 044 045 /** 046 * Constructs a message factory. 047 */ 048 public ParameterizedMessageFactory() { 049 super(); 050 } 051 052 /** 053 * Creates {@link ParameterizedMessage} instances. 054 * 055 * @param message The message pattern. 056 * @param params The message parameters. 057 * @return The Message. 058 * 059 * @see MessageFactory#newMessage(String, Object...) 060 */ 061 @Override 062 public Message newMessage(final String message, final Object... params) { 063 return new ParameterizedMessage(message, params); 064 } 065 066 /** 067 * @since 2.6.1 068 */ 069 @Override 070 public Message newMessage(final String message, final Object p0) { 071 return new ParameterizedMessage(message, p0); 072 } 073 074 /** 075 * @since 2.6.1 076 */ 077 @Override 078 public Message newMessage(final String message, final Object p0, final Object p1) { 079 return new ParameterizedMessage(message, p0, p1); 080 } 081 082 /** 083 * @since 2.6.1 084 */ 085 @Override 086 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2) { 087 return new ParameterizedMessage(message, p0, p1, p2); 088 } 089 090 /** 091 * @since 2.6.1 092 */ 093 @Override 094 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { 095 return new ParameterizedMessage(message, p0, p1, p2, p3); 096 } 097 098 /** 099 * @since 2.6.1 100 */ 101 @Override 102 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4) { 103 return new ParameterizedMessage(message, p0, p1, p2, p3, p4); 104 } 105 106 /** 107 * @since 2.6.1 108 */ 109 @Override 110 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5) { 111 return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5); 112 } 113 114 /** 115 * @since 2.6.1 116 */ 117 @Override 118 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 119 final Object p6) { 120 return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6); 121 } 122 123 /** 124 * @since 2.6.1 125 */ 126 @Override 127 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 128 final Object p6, final Object p7) { 129 return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7); 130 } 131 132 /** 133 * @since 2.6.1 134 */ 135 @Override 136 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 137 final Object p6, final Object p7, final Object p8) { 138 return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); 139 } 140 141 /** 142 * @since 2.6.1 143 */ 144 @Override 145 public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, 146 final Object p6, final Object p7, final Object p8, final Object p9) { 147 return new ParameterizedMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); 148 } 149}