All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gwt.dev.util.msg.Message1 Maven / Gradle / Ivy

There is a newer version: 2.10.0
Show newest version
/*
 * Copyright 2006 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.dev.util.msg;

import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.TreeLogger.Type;

/**
 * 1-arg message.
 */
public abstract class Message1 extends Message {

  public Message1(Type type, String fmt) {
    super(type, fmt, 1);
  }

  protected TreeLogger branch1(TreeLogger logger, Object arg1, Formatter fmt1,
      Throwable caught) {
    return logger.branch(type, compose1(arg1, fmt1), caught);
  }

  protected String compose1(Object arg1, Formatter fmt1) {
    // Format the objects.
    //
    String stringArg1 = (arg1 != null ? fmt1.format(arg1) : "null");

    // To maintain consistency with the other impls, we use an insert var.
    //
    String insert1 = stringArg1;

    // Cache the length of the inserts.
    //
    int lenInsert1 = insert1.length();

    // Cache the length of each part.
    //
    int lenPart0 = fmtParts[0].length;
    int lenPart1 = fmtParts[1].length;

    // Prep for copying.
    //
    int dest = 0;
    char[] chars = new char[minChars + lenInsert1];

    // literal + insert, part 0
    System.arraycopy(fmtParts[0], 0, chars, dest, lenPart0);
    dest += lenPart0;

    insert1.getChars(0, lenInsert1, chars, dest);
    dest += lenInsert1;

    // final literal
    System.arraycopy(fmtParts[1], 0, chars, dest, lenPart1);

    return new String(chars);
  }

  protected void log1(TreeLogger logger, Object arg1, Formatter fmt1,
      Throwable caught) {
    if (logger.isLoggable(type)) {
      logger.log(type, compose1(arg1, fmt1), caught);
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy