Package com.opengamma.web.server.conversion

Source Code of com.opengamma.web.server.conversion.LabelFormatter

/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.server.conversion;

import java.math.BigDecimal;

import org.threeten.bp.LocalDate;
import org.threeten.bp.format.DateTimeFormatter;

import com.opengamma.financial.analytics.volatility.surface.BloombergFXOptionVolatilitySurfaceInstrumentProvider.FXVolQuoteType;
import com.opengamma.util.time.Tenor;
import com.opengamma.util.tuple.Pair;

/**
* Static utility class for formatting axis labels reasonably.
*/
public class LabelFormatter {
  public static String format(Object o) {
    if (o instanceof Tenor) {
      return formatTenor((Tenor) o);
    } else if (o instanceof LocalDate) {
      return formatDate((LocalDate) o);
    } else if (o instanceof Pair) {
      return formatPair((Pair<?, ?>) o);
    } else if (o instanceof Double) {
      return formatDouble((Double) o);
    } else if (o instanceof Integer) {
      return formatInteger((Integer) o);
    } else {
      return o.toString();
    }
  }

  private static String formatInteger(Integer o) {
    return Integer.toString(o);
  }

  //private static DoubleValueSizeBasedDecimalPlaceFormatter s_formatter = new DoubleValueSizeBasedDecimalPlaceFormatter(3, 0, 100, false);
  private static DoubleValueSignificantFiguresFormatter s_formatter = DoubleValueSignificantFiguresFormatter.NON_CCY_5SF;
 
  private static String formatDouble(Double o) {
    return s_formatter.format(BigDecimal.valueOf(o));
  }

  private static String formatPair(Pair<?, ?> o) {
    Object firstObj = o.getFirst();
    Object secondObj = o.getSecond();
    if ((firstObj instanceof Integer) && (secondObj instanceof FXVolQuoteType)) {
      Integer first = (Integer) firstObj;
      FXVolQuoteType second = (FXVolQuoteType) secondObj;
      StringBuilder sb = new StringBuilder();
      sb.append(Integer.toString(first));
      sb.append("/");
      sb.append(second.name());
      return sb.toString();
    }
    return o.toString();
  }
 
  private static final DateTimeFormatter s_isoLocalDate = DateTimeFormatter.ISO_LOCAL_DATE;
 
  private static String formatDate(LocalDate o) {
    return s_isoLocalDate.format(o);
  }

  private static String formatTenor(Tenor o) {
    return o.getPeriod().toString().replaceFirst("P", "");
  }
}
TOP

Related Classes of com.opengamma.web.server.conversion.LabelFormatter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.