// This simple utility class is used by the SQLRetriever to provide formatting
// functionality for database columns. This class should be subclassed and then
// the method 'formatData()' overridden to provide different formatting.
//
// The default implementation here simply returns the original data unchanged...

package net.alanmaxwell.sql;

import java.text.DecimalFormat;

public class SQLDataFormatterDecimal extends SQLDataFormatter
{
  protected DecimalFormat formatter = null;

  public SQLDataFormatterDecimal()
  {
    this("0.00");
  };
  
  public SQLDataFormatterDecimal(String pattern)
  {
    formatter = new DecimalFormat(pattern);
  };
  
  public String formatDataForHTML(String data)
  {
    if (data == null)
    {
      return "&lt;null&gt;";
    };

    if (data.length() < 1)
    {
      return "&nbsp;";
    };
    
    try
    {
    	double dataValue = Double.parseDouble(data);
      return formatter.format(dataValue);
    }
    catch (NumberFormatException nfe)
    {
      return "&lt;NaN&gt;";
    }
  };

  public String formatDataForCSV(String data)
  {
    if (data == null)
    {
      return "<null>";
    };

    try
    {
    	double dataValue = Double.parseDouble(data);
      return formatter.format(dataValue);
    }
    catch (NumberFormatException nfe)
    {
      return "<NaN>";
    }
  };
};