View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements. See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache license, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License. You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the license for the specific language governing permissions and
    15   * limitations under the license.
    16   */
    17  package org.apache.logging.log4j.core.pattern;
    18
    19  import java.util.Date;
    20
    21  import org.apache.logging.log4j.core.config.plugins.Plugin;
    22
    23
    24  /**
    25   * Formats an integer.
    26   */
    27  @Plugin(name = "IntegerPatternConverter", category = "FileConverter")
    28  @ConverterKeys({ "i", "index" })
    29  public final class IntegerPatternConverter extends AbstractPatternConverter implements ArrayPatternConverter {
    30
    31      /**
    32       * Singleton.
    33       */
    34      private static final IntegerPatternConverter INSTANCE = new IntegerPatternConverter();
    35
    36      /**
    37       * Private constructor.
    38       */
    39      private IntegerPatternConverter() {
    40          super("Integer", "integer");
    41      }
    42
    43      /**
    44       * Obtains an instance of pattern converter.
    45       *
    46       * @param options options, may be null.
    47       * @return instance of pattern converter.
    48       */
    49      public static IntegerPatternConverter newInstance(
    50          final String[] options) {
    51          return INSTANCE;
    52      }
    53
    54      @Override
    55      public void format(final StringBuilder toAppendTo, final Object... objects) {
    56          for (final Object obj : objects) {
    57              if (obj instanceof Integer) {
    58                  format(obj, toAppendTo);
    59                  break;
    60              }
    61          }
    62      }
    63
    64      /**
    65       * {@inheritDoc}
    66       */
    67      @Override
    68      public void format(final Object obj, final StringBuilder toAppendTo) {
    69          if (obj instanceof Integer) {
    70              toAppendTo.append(obj.toString());
    71          } else if (obj instanceof Date) {
    72              toAppendTo.append(Long.toString(((Date) obj).getTime()));
    73          }
    74      }
    75  }